我有几个版本的Ruby宝石:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

如何删除旧版本而保留最新版本?


当前回答

清除旧版本宝石的方法。

sudo gem cleanup

如果你只是想看到什么将被删除的列表,你可以使用:

sudo gem cleanup -d

你也可以通过指定一个特定的宝石的名字来清除它:

sudo gem cleanup gemname

仅用于删除特定版本,如1.1.9

gem uninstall gemname --version 1.1.9

如果你仍然面临一些异常安装gem,如:

在/home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem中,未定义方法' size'为nil:NilClass (NoMethodError)

,你可以从缓存中删除它:

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

其他回答

# 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'
bundler clean

停止为我显示的消息,作为我尝试以上所有步骤后的最后一步。

您可能需要设置GEM_HOME以使清理工作起作用。您可以通过运行以下命令来检查gemfiles的路径:

gem env

注意GEM PATHS部分。

以我为例,在我的用户家中安装了gems:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup

清除旧版本宝石的方法。

sudo gem cleanup

如果你只是想看到什么将被删除的列表,你可以使用:

sudo gem cleanup -d

你也可以通过指定一个特定的宝石的名字来清除它:

sudo gem cleanup gemname

仅用于删除特定版本,如1.1.9

gem uninstall gemname --version 1.1.9

如果你仍然面临一些异常安装gem,如:

在/home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem中,未定义方法' size'为nil:NilClass (NoMethodError)

,你可以从缓存中删除它:

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 uninstall rjb这样的方法——1.3.4版。