我正在运行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 #<Psych::ClassLoader:0x0000010c9d0be0> (NoMethodError) in /Users/ryan/.rvm/gems/ruby-2.0.0-p353/cache/i18n-0.6.9.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)
有没有人有解决这个问题的建议?
答案 0 :(得分:30)
最新版本不再使用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
安装宝石后,如果需要,可以再次升级Psych宝石。
答案 1 :(得分:4)
我有这个问题,确切的环境和你一样。我尝试了很多东西,包括Alexbhandari在评论中添加的链接。我花了几个小时最后决定退出并完全擦除所有〜/ .rvm文件夹并重新开始。
警告:这应该仅针对新安装进行,而不首先考虑您可能丢失的内容,例如您可能自己构建的gemsets。但是,如果它是新安装,您将不会丢失任何无法更换的东西。
我重命名了〜/ .rvm文件夹,以便我确实有备份并再次启动整个安装过程。这次它起作用了,我在大约20分钟内实际启动并运行,而不是我在尝试解决问题之前浪费的时间。
您可以使用mv
命令从终端窗口执行此操作。 〜/ .rvm目录在我的$ home目录中:
Stephens-MacBook-Pro-2:~ Steve$ mv .rvm old.rvm
我知道这是一个激烈的步骤,但它在新的安装上对我有用,所以我希望它将来会帮助一个新手。
答案 2 :(得分:3)
我遇到了同样的问题,并记得在我的终端输出中看到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更新有关,因为我被问及开发人员工具。
答案 3 :(得分:1)
以下步骤为我工作 -
转到损坏的包/宝石位置
android.permission.WRITE_EXTERNAL_STORAGE
删除损坏的包/ gem
$ cd /Users/ryan/.rvm/gems/ruby-2.0.0-p353/cache/
现在安装特定的宝石OR $ rm i18n-0.6.9.gem