在安装轨道时得到交叉线程冲突



我使用rvm运行ruby 1.9.2 p180。

我试图安装rails:

sudo gem install rails

我得到了这个:

Successfully installed activerecord-3.1.3
Successfully installed activeresource-3.1.3
Successfully installed mail-2.3.0
Successfully installed actionmailer-3.1.3
Successfully installed rack-ssl-1.3.2
Successfully installed rdoc-3.12
Successfully installed railties-3.1.3
Successfully installed rails-3.1.3
22 gems installed
[BUG] cross-thread violation on rb_gc()
(null)

我一直在使用1.8.7,但想尝试使用1.9.2,因为这是事情似乎在移动和遇到这个错误。

会是什么呢?

参见RVM故障排除中的"总线错误/段故障"一节:

在我所看到的每一个案例中,到目前为止,它总是以一个带有C扩展的ruby gem/库在不同的ruby和/或架构下编译而不是试图加载它而告终。尝试卸载&重新安装带有C扩展的gems,你的应用程序使用这些扩展来查找这个bug。

不能保证这是问题所在,但要确保所有gem都是针对您运行的体系结构编译的(例如64位vs 32位)。你在文章中没有提到平台/架构。如果你运行的是OSX,请参见rb_gc中的OSX、RubyGems和跨线程违规。你可能会捡到一些1.8.7的宝石。

为什么使用RVM运行sudo gem ?

rvm use rails-1.9.2-p180

install rails

在你创建应用程序的文件夹下,你也可以创建一个带有你正在运行的ruby版本的。rvmrc文件,这样每次你进入该文件夹时,它都会切换到。rvmrc 中设置的版本。示例:

rvm ruby-1.9.2-p180@myapp

最新更新