ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

已安装 Mac OS X Lion 版本 10.7(内部版本 11A459e)。已安装 XCode 4.1 Developer Preview 5。已安装 RVM。使用命令 rvm install 1.8.7 通过 RVM 安装了 1.8.7 版本的 Ruby。注意:我需要使用 1.8.7 而不是 1.9.2。使用命令 rvm 1.8.7 切换到 Ruby 的 1.8.7 版本。使用命令 rvm gemset create rails3 创建了一个新的 gemset。使用命令 rvm use 1.8.7@rails3 切换到新的 gemset。要安装 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

你走在一个非常流血的边缘,添加 1.8.7 可能会使事情复杂化。我建议尝试安装 1.9.2,然后是 Rails,看看情况如何。然后我会尝试改造 1.8.7 和 Rails。照原样,您正在使用两个尚未发布的软件,因此您会发现支持可能还没有赶上。 “分段错误”通常是针对 64 位系统的 32 位构建的结果,这可能在意外的系统版本中发生。研究 rvm info 的输出,看看它说了什么。它可能包含一些线索。
正如公平的警告一样,Lion 处于 NDA 之下,因此您可能不允许在指定的 Apple 渠道之外谈论这个问题。如果他们愿意,Apple 可以撤销您讨论它的开发者帐户。
谢谢@the Tin Man:我会看看 rvm 信息中是否有任何内容。可悲的是,我必须为这个项目使用 1.8.7;遵循上述步骤,但使用 Ruby 1.9.2 允许 Rails 3 安装得很好。
感谢@Chuck 的警告-我会小心不要透露我同意不透露的任何内容。
RVM 1.9.2 不适用于这些建议。 rvm 检测到 llvm 并且不会运行

H
Henrique Gontijo

解决它!

答案实际上在我上面发布的链接之一上。在安装 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 将是 lion 上的默认编译器,我想这就是为什么你需要这样的东西。
使用该导出命令会更改会话中所有后续命令的 CC ......这可能会弄乱其他编译。使用 CC=/usr/bin/gcc-4.2 rvm install 1.8.7 全部一行来覆盖 rvm 安装的 CC。
对于它的价值,@skue 的注释对我不起作用。我必须将它添加到我的 .zshrc 文件中。
@Benjamin您使用的是Z Shell,对吗?值得注意的是,因为显然大多数 Mac 用户只使用 Terminal + Bash。
@Alan H. - 是的,绝对是 zsh。 FWIW,在 Lion 中,我在 zsh 触发 .rvmrc 脚本时遇到了问题,所以我已经切换回 bash 一段时间。因此,我已将该行添加到我的 .bash_profile
M
Matt Sanders

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

经过一番折腾,这终于对我有用:

从 App Store 安装 Xcode 4.2 使用 OSX gcc 安装程序安装 darwin gcc 安装 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 build 5666)。

如果您已经安装了 Xcode 4.1,请抵制升级到 4.2 的冲动,应该没问题。


上次我没有看到这个,但在另一个教程中找到了这个包。但是如果上述建议不起作用,这是一个很好的答案!
是的,我刚买了一个新的 MBP,以前的答案都不适合我。 FWIW,当我安装 Xcode 时,我当然得到了最新版本,现在是 4.2.1。我安装了 OSC gcc 安装程序,将导出行添加到我的 .bash_profile,然后使用 --force 重新运行 rvm install 命令,一切顺利。谢谢!
很高兴这有帮助!我处于同样的情况,其他答案都不适合我,所以我想记录下来。
在之前的所有建议都失败后,这也对我有用。
作为更新,我最近重新安装了 Lion,并且完全无需安装 Xcode 就能让一切正常工作。所以,如果你还没有安装它,你可能只想试试 OSX gcc 安装程序,看看你是否有你需要的东西。
H
Hans verschooten

如果这仍然不起作用,请添加--force。所以这变成:

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


是的,如果您在没有 gcc-4.2 的情况下开始安装,它将在第二次停止的地方继续。所以你需要 --force 来清除你已经用 llvm 编译的东西并重新开始。
我吹走了我的 ~/.rvm 并且仍然不得不使用 --force ty Hans
谢谢汉斯,--force 也是我想要的
通常在安装目录的命令行中使用 make clean 是更合适的命令,而不是 --force。强制忽略错误,错误是需要注意的。所以要小心。
t
the Tin Man

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


G
Glorfindel

我的系统上有同样的问题。我安装了 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

GitHub URL 已更改。该命令现在改为 brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb
t
the Tin Man

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


R
Rimian

检查您拥有的 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 

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

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

希望这可以帮助。


H
Henry Kim

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


M
Michael Nikitochkin

当我在 ~/.rvmrc 中注释行时,我只对 arch x86_64 有同样的问题

rvm_archflags="-arch x86_64"

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

rvm install 1.8.7

它是成功的。


C
Community

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

https://gist.github.com/1112962

(更新的文件名)


B
Beltran

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


a
antyrat

CC=/usr/bin/gcc-4.2 rvm install 1.8.7 对我不起作用,我使用了 CC=/usr/bin/gcc rvm install 1.8.7,它确实起作用了(检查“哪个 gcc”)


A
Aidan Feldman

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

rvm use system

您需要使用 sudo 来安装 gem,但仍然不那么令人头疼。


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

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

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

这不仅修复了我的 RVM 安装,而且确保安装带有本机扩展(如 rmagick)的 gem 可以正常工作。