2011-05-05 122 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