我有几个版本的Ruby宝石:
$ 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'
尝试一些类似gem uninstall rjb --version 1.3.4的东西。
gem uninstall rjb --version 1.3.4
gem cleanup使用系统命令。安装的gems只是文件系统中的目录。如果你想批量删除,使用rm -R。
gem cleanup
rm -R
gem environment
GEM PATHS
cd <your-gem-paths>/gems
ls -1 |grep rjb- |xargs rm -R
要删除旧版本的所有安装的gems,下面两个命令是有用的:
gem cleanup --dryrun
以上命令将预览哪些宝石将被删除。 < br >
上面的命令实际上会删除它们。
清除旧版本宝石的方法。
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_HOME来进行清理工作。您可以通过运行以下命令来检查gemfiles的路径:
GEM_HOME
gem env
注意GEM PATHS部分。
以我为例,在我的用户家中安装了gems:
export GEM_HOME="~/.gem/ruby/2.4.0" gem cleanup
bundler clean
停止为我显示的消息,作为我尝试以上所有步骤后的最后一步。