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

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

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

  1. 安装 Mac OS X Lion Version 10.7(Build 11A459e)。
  2. 已安装的 XCode 4.1开发人员预览版5。
  3. 安装了 RVM。
  4. 使用 rvm install 1.8.7命令通过 RVM 安装了1.8.7版本的 Ruby。注意: 我需要使用1.8.7而不是1.9。
  5. 使用命令 rvm 1.8.7切换到 Ruby 的1.8.7版本。
  6. 使用命令 rvm gemset create rails3创建一个新的镶嵌。
  7. 使用命令 rvm use 1.8.7@rails3切换到新的宝石组。
  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

28634 次浏览

修好了!

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

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

如果还是不行,就加力。 这就变成了:

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

如果您在开发工作流中使用 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”检查)

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

使用 macport 和 ruby-1.9.x 版本。 我用红宝石成功地安装了轨道。

如果您已经安装了 Xcode 4.2,那么它实际上不再安装非 LLVM gcc,因此必须添加它。由于某些原因,在安装了4.2之后降级到4.1不能正常工作(至少对我和其他人来说没有出现类似的问题)。

经过一番折腾,我终于明白了:

  1. 从 App Store 安装 Xcode 4.2
  2. 使用 安装程序安装 darwin gcc
  3. 安装 REE 确保你清除了以前尝试过的任何痕迹:

关闭任何打开的终端窗口,打开一个新的终端窗口

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

对于 rvm1.8.6、 OSX10.7.2和 gcc-4.2版本4.2.1(Apple build 5666) ,这对我来说很有用。

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

即使有这个页面上的所有其他建议,我仍然得到了错误和沮丧,所以我说: “螺丝!”使用系统提供的 Ruby 1.8.7:

rvm use system

您需要使用 sudo 来安装 gem,但仍然少了很多麻烦。

我有同样的问题,只有拱 X86 _ 64,当我在我的 ~/. rvmrc注释行

rvm_archflags="-arch x86_64"

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

rvm install 1.8.7

很成功。

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

Https://plus.google.com/101970693023462019144/posts/eyvlvmcqtmc

这不仅修复了我的 RVM 安装,而且还确保了使用本机扩展(如 rmagick)安装 gem 的工作。

我的系统也有同样的问题。我安装了来自苹果的 Xcode 命令行工具,它附带 LLVM 编译器,并且没有免费的 LLVM 编译器。

Ruby1.8.7不能在 LLVM 编译器中工作,甚至 CC=clang也不能,所以安装一个免费的 LLVM gcc 就解决了这个问题。

这里列出了多种选择:

Https://github.com/mxcl/homebrew/wiki/custom-gcc-and-cross-compilers

长话短说,用 自酿的安装 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

检查你的 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

(可选)删除旧版本的红宝石

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 的一些问题等等。你可以省略这些标志。

另外,你可能需要移除一个旧版本的宝石:

rvm gemset delete <gemset>

然后

gem install bundler
bundle install

希望这个能帮上忙。