干净安装OSX 10.9.1在尝试安装gem时返回"undefined method`path2class'"

Nie*_*ian 17 ruby rubygems bundler rvm psych

我刚用Homebrew和RVM安装了一个干净的Mavericks安装.双方brew doctorrvm requirements返回"都好",但是,当我跑bundle install在我的项目目录我的大部分宝石安装好的,但少数失败,同一以下错误安装:

Bundler::GemspecError: Could not read gem at /Users/NK/.rvm/gems/ruby-2.0.0-p353/cache/eventmachine-1.0.3.gem. It may be corrupted.
An error occurred while installing eventmachine (1.0.3), and Bundler cannot continue.
Make sure that `gem install eventmachine -v '1.0.3'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

然后,如果我再试一次,gem install eventmachine -v '1.0.3'我得到:

ERROR:  Error installing eventmachine:
    invalid gem: package is corrupt, exception while verifying: undefined method `path2class' for #<Psych::ClassLoader:0x000001018f7990> (NoMethodError) in /Users/NK/.rvm/gems/ruby-2.0.0-p353/cache/eventmachine-1.0.3.gem
Run Code Online (Sandbox Code Playgroud)

我试图破坏RVM并重新安装,但没有任何帮助.

其他人似乎也有同样的问题,但似乎还没有人为这个答案提供资金:

编辑

看到这两个:

Nie*_*ian 40

事实证明,这是一个老版本的心理错误,但它无法解决,只要你安装ruby与RVMs静态链接的宝石.所以基本上问题与RVM静态链接的宝石有关.安装红宝石--disable-binary解决了问题:

rvm install 2.0.0-p353 --disable-binary
Run Code Online (Sandbox Code Playgroud)

或重新安装:

rvm reinstall 2.0.0-p353 --disable-binary
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案对我来说很有用,但后来在同事的计算机上发现,卸载心理也有效.由于心理包括在MRI中,我们依赖于心理的宝石仍然有效. (2认同)

小智 22

我有同样的错误,并调查了心灵宝石

$ gem list --local | grep psych
psych (2.0.4, 2.0.0)
Run Code Online (Sandbox Code Playgroud)

最近安装的版本2.0.4我删除它,只保留版本2.0.0

$ gem uninstall psych -v '2.0.4'
Successfully uninstalled psych-2.0.4
Run Code Online (Sandbox Code Playgroud)

在那之后,一切都恢复正常!