为什么我不能使用RVM在Lion上安装Rails?

我遇到了试图使用RVM在OS X Lion上安装Rails的问题。

到目前为止,我做了以下工作:

  1. 安装了Mac OS X Lion版本10.7(内部版本11A459e)。
  2. 安装了XCode 4.1开发人员预览版5。
  3. 安装了RVM。
  4. 使用rvm install 1.8.7命令通过RVM安装了一个1.8.7版本的Ruby。 注意:我需要使用1.8.7而不是1.9.2。
  5. 使用命令rvm 1.8.7切换到Ruby的1.8.7版本。
  6. 使用命令rvm gemset create rails3创build一个新的gemset。
  7. 使用命令rvm use 1.8.7@rails3切换到新的gemset。
  8. 要安装Rails,我运行了命令gem install rails但是出现了以下错误:

    /Users/m/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:60:[BUG]分割错误

尝试运行任何gem命令时发生同样的错误,所以我不认为这是真的与Rails的问题。

从下面的链接来看,我似乎不是唯一有这个问题的人:

http://twitter.com/#!/pingles/status/66261101351927809和https://github.com/carlhuda/bundler/issues/1058

修复!

答案实际上是我在上面发布的链接之一。 在安装ruby版本(rvm install 1.8.7)之前,我需要运行“ export CC=/usr/bin/gcc-4.2 ”。 随着这一切,一切顺利。

如果你不想让CC永久导出,你可以这样做CC=/usr/bin/gcc-4.2 rvm install 1.8.7

如果你已经安装ruby1.8.7。 只要执行CC=/usr/bin/gcc-4.2 rvm reinstall 1.8.7

如果你已经安装了Xcode 4.2,它实际上不再安装非LLVM gcc,所以你必须添加它。 安装4.2后,出于某种原因降级到4.1不能正常工作(至less它不适合我,其他人也有类似的问题)。

经过了一番颠簸之后,终于为我效力了:

  1. 从App Store安装Xcode 4.2
  2. 使用OSX gcc安装程序安装darwin gcc
  3. 安装稀土元素确保您删除以前尝试的任何痕迹:

closures任何打开的terminal窗口,打开一个新的和

 rvm remove ree export CC=/usr/bin/gcc-4.2 rvm install ree 

这适用于rvm 1.8.6,OS X 10.7.2和gcc-4.2版本4.2.1(Apple build 5666)。

如果你已经安装了Xcode 4.1,不要急于升级到4.2,你应该没问题。

如果这仍然不起作用,添加 – 力量。 所以这成为:

CC=/usr/bin/gcc-4.2 rvm install ruby-1.8.7 --force

如果你使用“ rvm remove 1.8.7 ”,在使用“ export CC=/usr/bin/gcc-4.2 ”之前已经安装了rvm remove 1.8.7

我的系统上有同样的问题。 我安装了Apple提供的LLVM编译器的Xcode命令行工具,没有LLVM。

Ruby 1.8.7不能使用LLVM编译器,即使CC=clang也不行,所以安装一个LLVM free gcc可以解决这个问题。

这里列出了多个选项:

https://github.com/mxcl/homebrew/wiki/Custom-GCC-and-cross-compilers

长话短说,用Homebrew安装GCC v4.2:

 brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb 

然后安装ruby1.8.7:

 CC=gcc-4.2 rvm install 1.8.7 

代替“ export CC=/usr/bin/gcc-4.2 ”做“ export CC=gcc ”(应该安装xCode 4.2.x)。

检查你有这样的gcc版本:

 ls -Al `which gcc-4.2` 

我按照这里的说明: http : //robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion

 brew update brew tap homebrew/dupes brew install apple-gcc42 

然后重新安装:

再次检查你的gccpath(用于CC =):

 ls -Al `which gcc-4.2` 

(可选)你可以在.bashrc中设置这个例子:

 export CC=/usr/bin/gcc-4.2 

(可选)删除旧版本的ruby

 rvm remove 1.8.7 

然后:

 CC=/usr/local/bin/gcc-4.2 rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

或者如果您在个人资料中设置了CC

 rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

请注意rvm install上的标志。 我在validationftp服务器上的校验和时遇到了麻烦,有些问题与tck不一致。 您可能可以省略这些标志。

另外:您可能需要删除旧版本的gemset:

 rvm gemset delete <gemset> 

然后

 gem install bundler bundle install 

希望这可以帮助。

使用macport和ruby-1.9.x版本。 我成功地安装与rubygem轨。

当我在〜/ .rvmrc中注释行时,我只有arch x86_64的问题

 rvm_archflags="-arch x86_64" 

打开一个新的terminal,并试图再次安装ruby-1.8.7

 rvm install 1.8.7 

这是成功的。

如果您在开发工作stream程中使用RVM,则在OS X Lion的.rvmrc文件中添加了修复程序。

https://gist.github.com/1112962

(更新文件名)

这与RVM无关,但如果您正在寻找的是Lion的本地开发环境,您可能需要尝试一下RubyStack。它是一个免费的,开放源代码的一体化安装程序,用于Apache,MySQL,Ruby, Rails等。它不需要编译,它是独立的,所以如果你不喜欢它,你可以简单地删除安装目录,你就完成了。 免责声明:我是RubyStack开发者之一:)

CC=/usr/bin/gcc-4.2 rvm install 1.8.7没有为我工作,我使用CC=/usr/bin/gcc rvm install 1.8.7 ,它确实(检查“哪个gcc ”)

即使在这个页面上的所有其他build议,我仍然越来越segfaults和沮丧,所以我说:“拧它! 并使用系统提供的Ruby 1.8.7:

 rvm use system 

你需要使用sudo来安装gem,但是还是less花点头痛。

我的解决scheme是重写terminal中的/ usr / bin / gcc符号链接。 以下是我如何做到的:

https://plus.google.com/101970693023462019144/posts/eYVLvMCqTmc

这不仅解决了我的RVM安装问题,而且还确保使用原生扩展(如rmagick)安装gem。