繁体   English   中英

卸载旧版本的 Ruby gems

[英]Uninstall old versions of Ruby gems

我有几个版本的 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 cleanup

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

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

sudo gem cleanup

如果您只想查看将被删除的列表,您可以使用:

sudo gem cleanup -d

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

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 中 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 uninstall rjb --version 1.3.4这样的东西。

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

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

停止为我显示消息,这是我尝试上述所有方法后的最后一步。

您可能需要设置GEM_HOME才能使清理工作。 您可以通过运行来检查 gemfile 存在哪些路径:

gem env

记下 GEM PATHS 部分。

例如,在我的情况下,我的用户主页中安装了 gems:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM