Ruby on rails 为什么可以';我是否可以使用RVM在Lion上安装导轨?

Ruby on rails 为什么可以';我是否可以使用RVM在Lion上安装导轨?,ruby-on-rails,ruby,macos,rvm,Ruby On Rails,Ruby,Macos,Rvm,我在尝试使用RVM在OSXLion上安装Rails时遇到了问题 到目前为止,我已经做了以下工作: 已安装Mac OS X Lion版本10.7(内部版本11A459e) 已安装XCode 4.1开发人员预览版5 已安装RVM 使用命令RVM install 1.8.7通过RVM安装了Ruby的1.8.7版本。注意:我需要使用1.8.7,而不是1.9.2 使用命令rvm1.8.7切换到Ruby的1.8.7版本 使用命令rvm gemset create rails3创建了一个新的gemset 使用

我在尝试使用RVM在OSXLion上安装Rails时遇到了问题

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

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

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

  • 在尝试运行任何gem命令时都会发生相同的错误,因此我认为这不是Rails的问题

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

    而且

    修复了它

    答案其实在我上面贴的一个链接上。在安装ruby版本(rvm安装1.8.7)之前,我需要运行“
    export CC=/usr/bin/gcc-4.2
    ”。有了这些,一切都顺利进行

    如果您不想永久导出
    CC
    ,可以执行
    CC=/usr/bin/gcc-4.2 rvm安装1.8.7


    如果您已经安装了ruby 1.8.7。只要在使用“导出CC=/usr/bin/gcc-4.2”之前,通过执行“
    rvm删除1.8.7

    如果仍然不起作用,请确保删除1.8.7,如果您已经安装了它,请在使用“
    导出CC=/usr/bin/gcc-4.2
    ”之前执行该操作。 这就变成了:


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

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


    (更新的文件名)

    这与RVM无关,但如果您想要的是Lion的本地开发环境,您可能想尝试一下,它是一个免费的、开源的Apache、MySQL、Ruby、Rails一体式安装程序,它不需要编译,而且是自包含的,因此如果您不喜欢它,只需删除安装目录即可。免责声明:我是RubyStack开发者之一:)

    CC=/usr/bin/gcc-4.2 rvm安装1.8.7
    对我不起作用,我使用了
    CC=/usr/bin/gcc-rvm安装1.8.7
    ,它确实(用“which
    gcc

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

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

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

    在经历了一段时间的颠簸之后,我终于明白了这一点:

  • 从应用商店安装Xcode 4.2
  • 使用
  • 安装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
    
    CC=gcc-4.2 rvm install 1.8.7
    

    您需要使用sudo来安装gems,但仍然没有那么麻烦。

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

    rvm_archflags="-arch x86_64"
    
    打开一个新终端并再次尝试安装ruby-1.8.7

    rvm install 1.8.7
    

    它成功了。

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


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

    我的系统上也有同样的问题。我安装了Apple提供的工具,该工具附带LLVM编译器,但没有LLVM免费工具

    Ruby 1.8.7不适用于LLVM编译器,即使是
    CC=clang
    ,因此安装一个无LLVM的gcc就可以解决这个问题

    此处列出了多个选项:

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

    然后安装ruby 1.8.7:

    rvm use system
    
    CC=gcc-4.2 rvm install 1.8.7
    

    检查您拥有的gcc版本,如下所示:

    ls -Al `which gcc-4.2`
    
    我按照这里的指示:

    然后重新安装:

    再次检查gcc的路径(用于CC=):

    (可选)您可以在.bashrc中进行设置,例如:

    export CC=/usr/bin/gcc-4.2
    
    (可选)删除任何旧版本的ruby

    rvm remove 1.8.7
    
    然后:

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

    rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 
    
    请注意rvm安装上的标志。我在验证ftp服务器上的校验和时遇到问题,tck和其他一些问题。您可以忽略这些标志

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

    rvm gemset delete <gemset>
    

    希望这能有所帮助。

    您正在走一条非常前沿的道路,添加1.8.7可能会使事情变得复杂。我建议尝试安装1.9.2,然后安装Rails,看看效果如何。然后我会尝试改装1.8.7和Rails。照目前的情况,您正在使用两款尚未发布的软件,因此您会发现支持可能没有跟上然而,“分段错误”通常是针对64位系统的32位构建的结果,这可能会在意外的系统版本中发生。研究
    rvm info
    的输出,看看它说了什么。它可能包含一些线索。正如公平警告一样,Lion在保密协议下,因此您需要
    rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 
    
    rvm gemset delete <gemset>
    
    gem install bundler
    bundle install