Ruby 删除gems的旧版本
对于我机器上的一些gem,有多个版本:Ruby 删除gems的旧版本,ruby,gem,Ruby,Gem,对于我机器上的一些gem,有多个版本: $gem list bigdecimal bigdecimal (1.2.6, 1.2.5) $gem list io-console io-console (0.4.3, 0.4.2) $gem list json json (1.8.2, 1.8.1) ... 我想删除旧版本。我尝试了几个命令: $gem cleanup Cleaning up installed gems... Clean Up Complete $sudo gem cle
$gem list bigdecimal
bigdecimal (1.2.6, 1.2.5)
$gem list io-console
io-console (0.4.3, 0.4.2)
$gem list json
json (1.8.2, 1.8.1)
...
我想删除旧版本。我尝试了几个命令:
$gem cleanup
Cleaning up installed gems...
Clean Up Complete
$sudo gem cleanup
Cleaning up installed gems...
Clean Up Complete
$gem cleanup json
Cleaning up installed gems...
Clean Up Complete
$sudo gem cleanup json
Cleaning up installed gems...
Clean Up Complete
但旧版本并没有被删除。为什么清理时未检测到旧版本?我怎样才能移除它们
更新奇怪的是,我可以手动卸载较新版本,但不能卸载旧版本。比如说,
$ sudo gem uninstall json --version 1.8.1
ERROR: While executing gem ... (Gem::InstallError)
gem "json" cannot be uninstalled because it is a default gem
$ sudo gem uninstall json --version 1.8.2
Successfully uninstalled json-1.8.2
更新什么是默认的gem?为什么不能删除
更新如果我有一个默认的旧版本,这是否意味着新版本没有被使用,而默认版本是由命令
require
调用的?很可能是gem cleanup
不起作用,因为您安装了一些依赖于这些旧版本的东西。通过运行gem-dependency-your-gem-name--reverse-dependencies
,您可以检查哪些内容依赖于旧gems
如果该命令未显示任何依赖项,则可以使用gem uninstall
手动删除旧版本:
# remove specific version
gem uninstall your-gem-name --version 2.1.0
# remove all versions less than a certain version
gem uninstall your-gem-name --version '<2.1.0'
#删除特定版本
gem卸载您的gem名称--版本2.1.0
#删除低于某个版本的所有版本
gem卸载您的gem名称--version“我尝试了$sudo gem uninstall json--version 1.8.1
,它给出错误:在执行gem时。。。(Gem::InstallError)无法卸载Gem“json”,因为它是默认Gem
。卸载默认Gem很危险。这就是为什么它不允许您卸载最旧的版本。