2011-05-05 140 views
294

我有一个Ruby宝石的几个版本:红宝石卸载旧版本的宝石

$ gem list 
rjb (1.3.4, 1.3.3, 1.1.9) 

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

+1

我来这里问同样的问题(y),谢谢! – 2015-07-17 08:41:22

回答

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

尝试类似gem uninstall rjb --version 1.3.4

+0

的问题是“我如何删除旧版本,但保留最新版本?”此响应会删除最新版本。 – austinheiman 2017-10-06 16:40:39

8

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

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

“安装的gems只是文件系统中的目录。”很高兴知道,谢谢 – philant 2017-07-04 06:36:48

211

值对于删除旧版本所有安装宝石,以下两个命令是有用的:

gem cleanup --dryrun 

上面的命令将预览哪些宝石将被删除。

gem cleanup 

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

+0

耶稣,多年来我一直没有这样的生活。只是节省了我的空间演出。谢谢! – gamut 2017-12-06 16:28:33

7

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

sudo gem cleanup 

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

sudo gem cleanup -d 

您还可以清理只是通过指定名称的特定宝石:

sudo gem cleanup gemname 

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

gem uninstall gemname --version 1.1.9 

如果你仍然面临着一些例外安装宝石,如:

无效宝石:包损坏,同时验证例外:未定义的方法`大小”的零:NilClass(NoMethodError)在/home/rails/.rvm/ gems/[email protected]/cache/nokogiri-1.6.6.2.gem

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

rm /home/rails/.rvm/gems/[email protected]/cache/nokogiri-1.6.6.2.gem 

更多细节:

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