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


83

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

到目前为止,我已经执行了以下操作:

  1. 已安装Mac OS X Lion版本10.7(内部版本11A459e)。
  2. 已安装XCode 4.1 Developer Preview 5。
  3. 已安装RVM。
  4. 使用命令通过RVM安装了1.8.7版本的Ruby rvm install 1.8.7。注意:我需要使用1.8.7而不是1.9.2。
  5. 使用命令切换到1.8.7版本的Ruby rvm 1.8.7
  6. 使用命令创建了一个新的gemset rvm gemset create rails3
  7. 使用命令切换到新的gemset 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/66261101351927809https://github.com/carlhuda/bundler/issues/1058


2
您正在流血,并且添加1.8.7可能会使事情变得复杂。我建议尝试安装1.9.2,然后安装Rails,然后看看如何进行。然后,我将尝试改装1.8.7和Rails。照原样,您使用的是尚未发布的两款软件,因此您可能会发现尚未获得支持。“分段错误”通常是针对64位系统进行32位构建的结果,这可能会在意外的系统版本中发生。研究的输出rvm info并查看其内容。它可能有一些线索。
锡人

2
出于公平的警告,Lion受NDA约束,因此可能不允许您在指定的Apple渠道之外谈论此话题。如果他们愿意,Apple可以撤销您的开发人员帐户以进行讨论。
查克(Chuck)

感谢@The Tin Man:我将看看rvm信息中是否有任何内容。可悲的是,我必须在该项目中使用1.8.7。遵循上述步骤,但是使用Ruby 1.9.2时,Rails 3可以很好地安装。
迈克尔·杰罗姆

感谢@Chuck的警告-我会小心谨慎,不要透露我同意不做的任何事情。
迈克尔·杰罗姆

RVM 1.9.2不适用于任何这些建议。rvm检测到llvm并且无法运行
Dale

Answers:


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


我记得在某处读过llvm是狮子的默认编译器,我想这就是为什么您需要类似的东西。
Schmurfy 2011年

3
使用该导出命令会更改会话中所有后续命令的CC ...这可能会弄乱其他编译。使用CC=/usr/bin/gcc-4.2 rvm install 1.8.7所有一行仅覆盖rvm安装的CC。
skue 2011年

对于它的价值,@ skue的注释对我不起作用。我必须在.zshrc文件中添加它。
本·克里格

1
@Benjamin您正在使用Z Shell,对吗?值得注意的是,因为显然大多数Mac用户只是使用Terminal + Bash。
艾伦·H。

1
@Alan H.-是的,肯定是zsh。FWIW,在Lion中,我在使用zsh触发.rvmrc脚本时遇到了麻烦,因此我切换回bash了一段时间。因此,我已经将该行添加到了.bash_profile
本·克里格

24

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

经过一番摸索之后,这终于对我有用:

  1. 从App Store安装Xcode 4.2
  2. 使用OSX gcc安装程序安装darwin gcc
  3. 安装REE,确保您删除了先前尝试的所有痕迹:

关闭所有打开的终端窗口,再打开一个新窗口,然后

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内部版本5666)有效。

如果您已经安装了Xcode 4.1,请不要再升级到4.2,因此应该可以。


上次我没来找我,但是在另一个教程中找到了这个软件包。
蒂姆·贝斯

是的,我刚刚获得了一个新的MBP,以前的答案都对我没有帮助。FWIW,当我安装Xcode时,我当然获得了最新版本,即4.2.1。我安装了OSC gcc安装程序,将导出行添加到我的.bash_profile中,然后使用--force重新运行rvm install命令,一切顺利。谢谢!
turboladen 2011年

很高兴这有所帮助!我当时处在相同的情况下,没有其他答案对我有用,所以我想记录下来。
马特·桑德斯

在所有先前的建议都失败之后,这对我也起作用。
科里·希尔斯

作为更新,我最近重新安装了Lion,并且无需安装Xcode就可以使所有功能正常运行。因此,如果尚未安装,则可能需要尝试OSX gcc安装程序,看看是否有所需的东西。
马特·桑德斯

22

如果仍然不起作用,请添加--force。这样就变成了:

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


是的,如果您在没有gcc-4.2的情况下开始安装,它将在第二次中断的地方继续进行安装。因此,您需要--force清除已经用llvm编译的内容并重新开始。
劳伦斯

我吹走了〜/ .rvm,仍然不得不使用--force ty Hans
Scott Smith,

谢谢汉斯,--force也是我想要的
Stu

1
通常make clean,在安装目录中从命令行使用是更合适的命令,而不是--force。Force会忽略错误,而错误是要注意的事情。所以要小心
Tin Man

7

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


6

我的系统上有同样的问题。我安装了Apple的Xcode命令行工具,该工具附带LLVM编译器,而没有LLVM免费工具。

Ruby 1.8.7甚至不能与LLVM编译器一起使用CC=clang,因此安装免费的LLVM 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

4
GitHub URL已更改。现在是命令了brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb
马修·拉兹洛夫

4

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


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

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

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 

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

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

希望这可以帮助。


1

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




0

这与RVM无关,但是如果您要寻找的是Lion的本地开发环境,则可以尝试RubyStack。这是一个免费,开源的多合一安装程序,适用于Apache,MySQL,Ruby, Rails等。它不需要编译,并且是自包含的,因此,如果您不喜欢它,则只需删除安装目录即可。免责声明:我是RubyStack开发人员之一:)


0

CC=/usr/bin/gcc-4.2 rvm install 1.8.7不适用于我,我曾经使用过CC=/usr/bin/gcc rvm install 1.8.7,但确实有用(检查“哪个gcc”)


0

即使在此页面上有其他建议,我仍然感到节节高潮和沮丧,所以我说“拧!” 并使用系统提供的Ruby 1.8.7:

rvm use system

您需要使用sudo来安装gem,但仍然可以减轻头痛。


请记住,已经安装了Ruby 1.8.7的系统可供Apple使用。我们可以搭载它,但是要小心更新宝石。
Tin Man

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.