安装Rails错误“无效的gem:包已损坏”

我正在运行Mac OSX 10.9.1,我正在使用RVM来管理Ruby v2.0.0-p353。

当我尝试安装Rails时出现此错误:

Ryans-MacBook-Air-2:~ ryan$ gem install rails ERROR: Error installing rails: invalid gem: package is corrupt, exception while verifying: undefined method`path2class' for # (NoMethodError) in /Users/ryan/.rvm/gems/ruby-2.0.0-p353/cache/i18n-0.6.9.gem 

这是我安装的gem列表:

 Ryans-MacBook-Air-2:~ ryan$ gem list *** LOCAL GEMS *** bigdecimal (1.2.3, 1.2.0) bundler (1.5.1) bundler-unload (1.0.2) executable-hooks (1.2.6) gem-wrappers (1.2.1) io-console (0.4.2) json (1.8.1, 1.7.7) minitest (5.2.0, 4.3.2) psych (2.0.2, 2.0.0) rake (10.1.1, 0.9.6) rdoc (4.1.0, 4.0.0) rubygems-bundler (1.4.2) rvm (1.11.3.8) test-unit (2.5.5, 2.0.0.0) 

有没有人有解决这个问题的建议?

最新版本不再具有class2path方法,因此可以通过将Psych gem降级到版本2.0.0来避免此问题:

 gem list psych # note down latest version gem uninstall psych -v 2.0.5 # or whatever version you have installed 

安装gem后,如果需要,可以再次升级Psychgem。

我有这个确切的问题以及与你一样的确切环境。 我尝试了很多东西,包括Alexbhandari在评论中添加的链接。 我花了几个小时,最后决定退出并完全擦除所有的〜/ .rvm文件夹,然后重新开始。

警告 :这应该仅在新安装时完成,而不首先考虑您可能丢失的东西,例如您可能自己构建的gemsets。 但是,如果它是新安装,您将不会丢失任何无法更换的东西。

我重命名了〜/ .rvm文件夹,以便我确实有备份并再次启动整个安装过程。 这次它起作用了,我实际上在20分钟内启动并运行,而不是我在尝试修复问题之前浪费的时间。

您可以使用mv命令从终端窗口执行此操作。 〜/ .rvm目录在我的$ home目录中:

 Stephens-MacBook-Pro-2:~ Steve$ mv .rvm old.rvm 

我知道这是一个激烈的步骤,但它在新的安装上对我有用,所以我希望它将来会帮助一个新手。

我遇到了同样的问题,并记得在我的终端输出中看到一些说XCode开发人员工具已经过时或未安装(我不记得哪些)。 它建议运行:

 $ xcode-select --install 

在这样做之后,我仍然遇到了问题。 我尝试删除gemset的缓存(我正在使用RVM),但仍然收到错误。 我还在使用ruby-2.0.0-p353。 我做了以下事情,事情对我有用:

 $ rvm get stable $ rvm reload $ rvm install 2.1 $ rvm gemset create your_gemset_name # Updated my .ruby-version and .ruby-gemset files in my Rails app to use the new gemset $ cd /to/my/rails/app # You can run $ rvm list gemsets to make sure your app is now using the new gemset. It will point to the current one being used. $ bundle install 

使用新版本的Ruby和新的gemset,工作正常。 不确定其他gemset发生了什么,但是当我尝试添加sidekiq gem并运行$ bundle install时,我首先注意到了它。

我想知道它是否与最近的XCode更新有关,因为我被问及开发人员工具。

以下步骤对我有用 –

  1. 转到损坏的包/gem位置

    $ cd /Users/ryan/.rvm/gems/ruby-2.0.0-p353/cache/

  2. 删除损坏的包/gem

    $ rm i18n-0.6.9.gem

  3. 现在安装特定的gem OR $ bundle install