私はRuby gemのいくつかのバージョンを持っています。
$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)
古いバージョンを削除して最新のものを保持する方法を教えてください。
# 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'
allインストールされているgemの古いバージョンを削除するには、次の2つのコマンドが便利です。
gem cleanup --dryrun
上のコマンドはどの宝石が取り除かれるのかをプレビューします。
gem cleanup
上記のコマンドは実際にそれらを削除します。
gem uninstall rjb --version 1.3.4
のようなものを試してください。
宝石の古いバージョンを一掃する方法。
Sudo gem cleanup
削除するものの一覧を見たいだけの場合は、次のようにします。
Sudo gem cleanup -d
名前を指定して特定のgemだけをクリーンアップすることもできます。
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
gem cleanup
はシステムコマンドを使用します。インストールされたgemはファイルシステム内の単なるディレクトリです。一括削除したい場合はrm -R
を使用してください。
gem environment
とGEM PATHS
の値を書き留めます。cd <your-gem-paths>/gems
ls -1 |grep rjb- |xargs rm -R
クリーンアップを機能させるにはGEM_HOME
を設定する必要があるかもしれません。次のコマンドを実行して、gemfilesにどのようなパスが存在するかを確認できます。
gem env
GEM PATHSセクションに注意してください。
私の場合は、たとえば、私のユーザーの自宅にgemがインストールされているとします。
export GEM_HOME="~/.gem/Ruby/2.4.0"
gem cleanup