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

时间:2011-05-29 22:26:13

标签: ruby-on-rails ruby macos rvm

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

到目前为止,我已经完成了以下工作:

  1. 安装了Mac OS X Lion版本10.7(Build 11A459e)。
  2. 安装了XCode 4.1 Developer Preview 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切换到1.8.7版本的Ruby。
  6. 使用命令rvm gemset create rails3创建新的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]分段错误

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

    根据以下链接判断,我似乎并不是唯一有这个问题的人:

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

14 个答案:

答案 0 :(得分:77)

修正了它!

答案实际上是我上面发布的一个链接。在安装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

如果您已经安装了ruby 1.8.7。只需CC=/usr/bin/gcc-4.2 rvm reinstall 1.8.7

答案 1 :(得分:24)

如果您安装了Xcode 4.2,它实际上不再安装非LLVM gcc,因此您必须添加它。由于某些原因,在安装4.2之后降级到4.1无法正常工作(至少它不适用于我而其他人也有类似的问题)。

经过相当多的颠簸之后,这才最终为我效力:

  1. 从App Store安装Xcode 4.2
  2. 使用OSX gcc installer
  3. 安装darwin gcc
  4. 安装REE,确保删除以前尝试的任何痕迹:
  5. 关闭所有打开的终端窗口,打开一个新窗口并

    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的冲动,您应该没问题。

答案 2 :(得分:22)

如果仍然无效,请添加--force。 所以这就变成了:

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

答案 3 :(得分:7)

通过执行“export CC=/usr/bin/gcc-4.2

确保在使用“rvm remove 1.8.7”之前已删除1.8.7已删除

答案 4 :(得分:6)

我的系统遇到了同样的问题。我安装了Apple的Xcode command line工具,它附带LLVM编译器,没有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

然后安装ruby 1.8.7:

CC=gcc-4.2 rvm install 1.8.7

答案 5 :(得分:4)

而不是“export CC=/usr/bin/gcc-4.2”执行“export CC=gcc”(应安装xCode 4.2.x)。

答案 6 :(得分:2)

检查您有哪个版本的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

然后重新安装:

再次检查你的gcc路径(用于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安装上的标志。我在验证ftp服务器上的校验和以及tck的一些问题时遇到了麻烦。您可以省略这些标志。

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

rvm gemset delete <gemset>

然后

gem install bundler
bundle install

希望这有帮助。

答案 7 :(得分:1)

使用macport和ruby-1.9.x版本。 我用ruby gem成功安装了rails。

答案 8 :(得分:1)

我在〜/ .rvmrc

中评论行时,仅针对arch x86_64 存在同样的问题
rvm_archflags="-arch x86_64"

打开一个新终端并尝试再次安装ruby-1.8.7

rvm install 1.8.7

成功了。

答案 9 :(得分:0)

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

https://gist.github.com/1112962

(更新文件名)

答案 10 :(得分:0)

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

答案 11 :(得分:0)

CC=/usr/bin/gcc-4.2 rvm install 1.8.7对我不起作用,我使用CC=/usr/bin/gcc rvm install 1.8.7并且确实如此(使用“gcc”进行检查)

答案 12 :(得分:0)

即使有了这个页面上的所有其他建议,我仍然会遇到段错误并感到沮丧,所以我说“搞砸了!”并使用系统提供的Ruby 1.8.7:

rvm use system

你需要使用sudo来安装宝石,但仍然可以减少头痛。

答案 13 :(得分:0)

我的解决方案是覆盖终端中的/ usr / bin / gcc符号链接。我是这样做的:

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

这不仅修复了我的RVM安装,还确保安装带有原生扩展的gems(如rmagick)。