ChatGPT解决这个技术问题 Extra ChatGPT

卸载旧版本的 Ruby gem

我有几个版本的 Ruby gem:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

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


Z
Zombo
# 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'

请注意,在最后一个命令中,“小于”运算符后必须有一个空格。
Z
Zia Ul Rehman Mughal

要删除所有已安装 gem 的旧版本,以下 2 个命令很有用:

 gem cleanup --dryrun

上面的命令将预览将要删除的宝石。

 gem cleanup

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


在我的 ubuntu cloud9 设置中不起作用...必须使用 sudo 运行
从当前版本的 gem 3.2.15 开始,我收到以下消息。 --dryrun 选项已被弃用,并将在 Rubygems 的未来版本中删除。改用 --dry-run
在 Rails 上,我必须在这两个命令之后运行 bundle install 来重新安装一些丢失的 gem,例如 puma。
u
user3118220

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

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


您可能不应该使用 sudo
D
Daniel O'Hara

尝试类似 gem uninstall rjb --version 1.3.4


问题是“如何删除旧版本但保留最新版本?”此响应将删除最新版本。
e
eebbesen

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

gem 环境并记下 GEM PATHS cd /gems ls -1 |grep rjb- |xargs rm -R 的值


“已安装的 gem 只是文件系统中的目录。”很高兴知道,谢谢
l
lkraider

您可能需要设置 GEM_HOME 才能进行清理。您可以通过运行以下命令检查 gemfile 的路径:

gem env

注意 GEM PATHS 部分。

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

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

M
Mike
bundler clean

在我尝试了上述所有方法之后,作为最后一步,停止了为我显示的消息。


这并不能真正回答问题:如果未安装 Bundler 或没有捆绑文件怎么办?