卸载旧版本的Ruby gem

时间:2011-05-05 18:30:35

标签: ruby gem

我有几个版本的Ruby gem:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

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

7 个答案:

答案 0 :(得分:594)

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

答案 1 :(得分:237)

要删除旧版本的所有安装的gem,以下两个命令很有用:

 gem cleanup --dryrun

上面的命令将预览要移除的宝石。

 gem cleanup

上面的命令实际上将删除它们。

答案 2 :(得分:12)

尝试类似gem uninstall rjb --version 1.3.4的内容。

答案 3 :(得分:9)

gem cleanup使用系统命令。安装的gem只是文件系统中的目录。如果要批量删除,请使用rm -R

  1. gem environment并注意GEM PATHS
  2. 的值
  3. cd <your-gem-paths>/gems
  4. ls -1 |grep rjb- |xargs rm -R

答案 4 :(得分:9)

清除任何旧版本宝石的方法。

sudo gem cleanup

如果您只想查看要删除的内容列表,可以使用:

sudo gem cleanup -d

您还可以通过指定名称来清除特定的gem:

sudo gem cleanup gemname

仅删除特定版本,如1.1.9

gem uninstall gemname --version 1.1.9

如果您仍然面临安装gem的异常,例如:

无效的gem:包被破坏,验证时出现异常:未定义的方法`size&#39; for nil:/home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem中的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

答案 5 :(得分:0)

您可能需要设置GEM_HOME才能进行清理。您可以通过运行以下命令检查gemfile存在哪些路径:

gem env

记下GEM PATHS部分。

例如,对于我而言,在用户主目录中安装了gems:

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

答案 6 :(得分:0)

bundler clean

在我尝试了上述所有操作之后的最后一步,是停止显示给我的消息。