损坏的ruby gem系统

损坏的ruby gem系统,ruby,rubygems,Ruby,Rubygems,不知怎的,我的红宝石坏了 $ sudo gem update 我得到: 错误:执行gem时。。。(Gem::例外) /home/sawa/.gem/specs/api.rubygems.org%443/specs.4.8中的规范缓存文件无效 我删除了.gem,重新安装了Ruby,但问题依然存在。如何修复此问题?首先,我建议您保存您的宝石列表,以防万一: $ gem list > gems.txt 要验证您正在使用您认为正确的等级库缓存,请执行以下操作: $ gem env | gre

不知怎的,我的红宝石坏了

$ sudo gem update
我得到:

错误:执行gem时。。。(Gem::例外)
/home/sawa/.gem/specs/api.rubygems.org%443/specs.4.8中的规范缓存文件无效

我删除了
.gem
,重新安装了Ruby,但问题依然存在。如何修复此问题?

首先,我建议您保存您的宝石列表,以防万一:

$ gem list > gems.txt
要验证您正在使用您认为正确的等级库缓存,请执行以下操作:

$ gem env | grep "SPEC CACHE"
 - SPEC CACHE DIRECTORY: /home/sawa/.gem/specs
要查看是否有任何过时的来源,请执行以下操作:

$ gem sources
如果您想小心,可以逐个删除源,然后重新添加。(见下面的代码)

尝试pristine,尽管它可能会失败:

$ gem pristine --all
严酷的做法是删除所有gem规范:

rm -rf /home/sawa/.gem/specs
核心方法是删除gem目录,您已经尝试过:

rm -rf /home/sawa/.gem
我最好的猜测是,您的一个gem源返回了一个不正确的文件,可能是暂时的问题。您可以通过删除所有gem源代码来解决这个问题

$ gem sources -​-clear-all # clears the cache, but doesn't remove the source
$ gem sources --update  # probably will work, in which case you can stop now.
如果清除源无效,则可以删除所有源并重新添加:

$ gem sources 
$ gem sources --remove http://gems.rubyforge.org/
$ gem sources --remove http://gems.github.com
...etc ...
$ gem sources -​-update  # should work fine, because there are no sources
$ gem sources --add http://gems.rubyforge.org/
$ gem sources --update
$ gem sources --add http://gems.github.com
$ gem sources --update
...etc...

可能再次尝试删除
~/.gem
gem update--system
(因为这可能是一个在更新的RubyGems中修复的bug)。还有,什么Ruby版本、RubyGems版本以及任何Ruby版本管理器(chruby、rbenv、RVM等)?@AndrewMarshall Ruby是2.2.0,Ruby gems是它附带的。我直接从源代码编译并安装。我认为
gem源代码--清除所有
gem源代码--更新
做到了。这就是答案。谢谢