我有几个版本的Ruby gem:
$ 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 的旧版本,可以使用以下 2 条命令:
gem cleanup --dryrun
以上命令将预览哪些 gem 将被移除。
gem cleanup
上述命令实际上会将它们移除。
--dryrun
选项已被弃用,并将在未来的Rubygems版本中删除。请改用--dry-run
。 - Ahmed Mohamedeen清除任何旧版 gem 的方法。
sudo gem cleanup
如果您只想看到将要被移除的列表,可以使用以下命令:
sudo gem cleanup -d
您还可以通过指定其名称来清理特定的宝石:
sudo gem cleanup gemname
仅针对删除特定版本,例如1.1.9
gem uninstall gemname --version 1.1.9
如果您在安装gem时仍然遇到某些异常,例如:
无效的gem:软件包已损坏,在验证时发生异常:/home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem中的nil:NilClass没有“size”方法(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
sudo
。 - Paul Danelligem uninstall rjb --version 1.3.4
。gem cleanup
使用系统命令。已安装的 gem 只是文件系统中的目录。如果您想要批量删除,请使用 rm -R
。
gem environment
命令,并注意 GEM PATHS
的值cd <your-gem-paths>/gems
命令进入该路径下的 gems 目录ls -1 |grep rjb- |xargs rm -R
命令以批量删除 rjb gem 包您可能需要设置GEM_HOME
才能使清理工作正常运行。您可以通过运行以下命令来检查gem文件的路径:
gem env
请注意GEM PATHS部分。
例如,在我的情况下,gem安装在我的用户主目录中:
export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
bundler clean
在我尝试了以上所有步骤后,最后一步是停止显示该消息。