Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 删除gems的旧版本_Ruby_Gem - Fatal编程技术网

Ruby 删除gems的旧版本

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,有多个版本:

$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很危险。这就是为什么它不允许您卸载最旧的版本。