Ruby gemの古いバージョンをアンインストールする


381

Ruby gemにはいくつかのバージョンがあります。

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

古いバージョンを削除して最新のバージョンを保持するにはどうすればよいですか?

回答:


654
# remove all old versions of the gem
gem cleanup rjb

# choose which ones you want to remove
gem uninstall rjb

# remove version 1.1.9 only
gem uninstall rjb --version 1.1.9

# remove all versions less than 1.3.4
gem uninstall rjb --version '<1.3.4'

259

インストールされているすべての gemの古いバージョンを削除するには、次の2つのコマンドが役立ちます。

 gem cleanup --dryrun

上記のコマンドは、削除される宝石をプレビューします。

 gem cleanup

上記のコマンドは実際にそれらを削除します。


私のubuntu cloud9セットアップでは機能しません... sudoで実行する必要があります
Mirv-Matt


10

古いバージョンの宝石を一掃する方法。

sudo gem cleanup

削除されるもののリストを表示したいだけの場合は、次を使用できます。

sudo gem cleanup -d

名前を指定して、特定の宝石だけをクリーンアップすることもできます。

sudo gem cleanup gemname

1.1.9のような特定のバージョンのみを削除する場合

gem uninstall gemname --version 1.1.9

以下のようにgemをインストールするための例外がまだ発生している場合:

無効なgem:パッケージが破損しています。検証中に例外が発生しました:/home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2のnil:NilClass(NoMethodError)の未定義のメソッド `size '。宝石

キャッシュから削除できます:

rm /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem

詳細:

http://blog.grepruby.com/2015/04/way-to-clean-up-gem-or-remove-old.html


おそらく使用すべきではありませんsudo
PRホワイトヘッド

8

gem cleanupシステムコマンドを使用します。インストールされたgemは、ファイルシステム内の単なるディレクトリです。一括削除する場合は、を使用しますrm -R

  1. gem environment そしての価値に注意してください GEM PATHS
  2. cd <your-gem-paths>/gems
  3. ls -1 |grep rjb- |xargs rm -R

2
「インストールされたgemは、ファイルシステム内の単なるディレクトリです。」知っておくと良いこと、ありがとう
哲学者

0

GEM_HOMEクリーンアップが機能するように設定する必要がある場合があります。次のコマンドを実行して、gemfileのパスを確認できます。

gem env

GEM PATHSセクションに注意してください。

たとえば、私のユーザーのホームにgemがインストールされている場合:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.