如何在Mac OS X Lion中安装Ruby 1.9.3?

时间:2011-11-15 15:53:03

标签: ruby macos osx-lion

我正在尝试安装Ruby 1.9.3但是遇到了问题。 我安装了RVM,然后键入:

rvm install 1.9.3

输出结果显示:

ERROR: Error running ' ./configure....

日志说:

configure: WARNING: unrecognized options: --with-libyaml-dir 
checking build system type... x86_64-apple-darwin11.2.0 
checking host system type... x86_64-apple-darwin11.2.0 
checking target system type...x86_64-apple-darwin11.2.0 
checking whether the C compiler works... no
configure: error: in `/Users/myuser/.rvm/src/ruby-1.9.3-p0':
configure: error: C compiler cannot create executables See `config.log' for more details

我从App Store下载了新的XCode并安装了它。

11 个答案:

答案 0 :(得分:118)

尝试使用clang编译器而不是默认值:

rvm install 1.9.3 --with-gcc=clang

答案 1 :(得分:15)

RVM需要gcc-4.2才能安装ruby 1.9.3。 不幸的是,Lion不再包含gcc-4-2,只是llvm版本:

lrwxr-xr-x  1 root  wheel  12 15 feb 17:21 /usr/bin/gcc -> llvm-gcc-4.2

如果你有Lion但是从Snow Leopard升级了你可能还有gcc-4.2如果你有一个全新的Lion安装,你应该下载gcc-4.2。我建议下载这个软件包。

https://github.com/kennethreitz/osx-gcc-installer

检查您现在是否安装了gcc-4.2:

-rwxr-xr-x  1 root  wheel  113024 16 may  2011 /usr/bin/gcc-4.2
lrwxr-xr-x  1 root  wheel      12 15 feb 17:21 /usr/bin/gcc -> llvm-gcc-4.2

现在你可以像往常一样安装ruby 1.9.3:

rvm install 1.9.3
rvm use 1.9.3 --default

答案 2 :(得分:13)

如果您只想安装并保持最新版本的Ruby(而不是在不同版本的ruby之间切换),您可以通过homebrew安装ruby:

brew install ruby

答案 3 :(得分:6)

首先尝试:

rvm get latest

这就是我的工作:

  rvm:
    version:      "rvm 1.9.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [https://rvm.beginrescueend.com/]"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.3p0"
    date:         "2011-10-30"
    platform:     "x86_64-darwin11.2.0"
    patchlevel:   "2011-10-30 revision 33570"
    full_version: "ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]"

答案 4 :(得分:6)

实际上,ruby-1.9.3-p125现在适用于gcc-llvm。但是,rvm的当前稳定/最新版本(尚未)。但这只是rvm谨慎,现在已经修复了rvm主分支中的解决方法。

只需将rvm升级到主分支并安装/升级ruby

GT-MBP:~ gthiruva$ rvm upgrade ruby-1.9.3-p0 1.9.3
Are you sure you wish to upgrade from ruby-1.9.3-p0 to     ruby-1.9.3-p125? (Y/n): Y
Installing new ruby ruby-1.9.3-p125
Fetching yaml-0.1.4.tar.gz to /Users/gthiruva/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /Users/gthiruva/.rvm/src
Configuring yaml in /Users/gthiruva/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/gthiruva/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/gthiruva/.rvm/usr
The autodetected CC(/usr/bin/gcc-4.2) is LLVM based, it is not yet fully supported by
ruby and gems, please read `rvm requirements`, and set CC=/path/to/gcc .
Unable to install ruby ruby-1.9.3-p125.         Please install it manually to continue.
GT-MBP:~ gthiruva$ rvm get head
Original installed RVM version:

rvm 1.10.2 by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis
<mpapis@gmail.com>`enter code here` [https://rvm.beginrescueend.com/]
...
RVM reloaded!
GT-MBP:~ gthiruva$ rvm reload
RVM reloaded!
GT-MBP:~ gthiruva$ exec bash

rvm 1.10.2 by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> 
[https://rvm.beginrescueend.com/]

GT-MBP:~ gthiruva$ rvm upgrade ruby-1.9.3-p0 1.9.3
Are you sure you wish to upgrade from ruby-1.9.3-p0 to     ruby-1.9.3-p125? (Y/n): Y
Installing new ruby ruby-1.9.3-p125
...
Successfully migrated ruby-1.9.3-p0 to ruby-1.9.3-p125
Upgrade complete!

答案 5 :(得分:6)

  1. 打开Xcode
  2. 打开Xcode首选项
  3. 打开下载标签
  4. 检查命令行工具
  5. Xcode screenshot

答案 6 :(得分:3)

  1. 从/ usr / local /或安装它们的任何位置卸载/删除所有手动安装的旧ruby版本和附加内容(sqlite3,libxml2-x.x.x,libxslt-x.x.x)的痕迹。
  2. 下载并安装JewlryBox http://unfiniti.com/software/mac/jewelrybox,这是一个用于管理红宝石和宝石的RVM GUI界面。
  3. 在JewlryBox中,单击“添加Ruby”并选择要安装的ruby版本(我选择了64位,启用了共享,但没有选中/勾选“使用clang”选项)。
  4. 安装了OS X Lion 10.7.3和Xcode 4.3命令行工具。

答案 7 :(得分:2)

输入以下命令

  • 〜$:source~ / .rvm / scripts / rvm
  • 〜$:输入rvm |头-n 1

      

    rvm是一个功能   

  •   
  • 〜$:vi~ / .bash_profile将此行添加到bash_profile中   “source~ / .rvm / scripts / rvm”

  •   
  • 〜$:rvm install 1.9.3

  •   
  • 〜$:rvm使用1.9.3
  •   

答案 8 :(得分:0)

Clang没有为我切割任何红宝石,无论单用户rvm是什么,rvm安装红宝石都失败了。 Sudo结合了一些许可和$ PATH更改为我的用户实现它。这就是我的所作所为:

sudo bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )</pre>
sudo rvm pkg install readline
sudo rvm install 1.9.3

从root用户安装rvm会在/ usr / local / rvm / scripts / rvm中创建一个shell脚本 从此可执行文件中拉出代码并将其放在我的.bash_profile中,以便.bash_profile保存为:

[ -s "/usr/local/rvm/scripts/rvm" ]] ;
    true ${rvm_path:="/usr/local/rvm"}
    source "/usr/local/rvm/scripts/rvm"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

用户组RVM是在root用户rvm安装期间创建的。我做的最后一件事是转到OSX 10.7中的我的首选项面板,并将我的用户添加到新的rvm组。最后我重新加载了我的终端,并能够通过rvm单用户安装1.9.3。

答案 9 :(得分:0)

使用rvm,ruby 1.9.3,并尝试使用gcc,我无法让Ruby使用yaml 干净地构建。虽然有各种各样的黑客可以让yaml编译工作,但它们似乎都没有与rvm一起使用。我在深夜排除故障并且我没有保留我的错误,所以我在这里工作 - 如果有环境干净的其他人可以测试这些步骤,我将不胜感激。

使用--with-gcc=clang解决方案产生了关于yaml解析器的轻微臭名昭着的错误:

It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby. 

因为我需要yaml来处理我将要做的事情,并且libyaml在没有被rvm运行时编译得很好,我甚至在手工构建后将它安装在/ usr / lib中,我可以&# 39;理解为什么即使使用--shared-libs选项,rvm也无法找到并使用该版本的libyaml。

使用CC=/usr/bin/gcc rvm install 1.9.3产生的错误。在.rvm / log / ruby​​-1.9.3-p385 / configure.log中,我发现了以下内容:

configure: error: C compiler cannot create executables
See `config.log' for more details

.rvm / log / libyaml-0.14 / configure.log中也存在该错误。

我的解决方案最终是用sudo运行rvm命令。以root身份运行编译似乎取消了Apple的GCC工具链不赞成用户做任何像编译软件那样肮脏的事情。

所以sudo CC=/usr/bin/gcc rvm install 1.9.3 --disable-binary在rvm文件夹中给了我一个ruby + yaml的干净编译。然后,我需要sudo chown -R username ~/.rvm && sudo chgrp -R staff ~/.rvm在我的用户中恢复并使用我的权限运行。

建议以root身份编译内容,因为我将其视为安全风险(尤其是最近在ruby堆栈和rubygems.org中发现的漏洞) - 但这会产生干净在rvm下安装ruby可能会帮助有更多才能或时间的人找出Apple的gcc问题的根本原因。

答案 10 :(得分:-1)

使用新的2012年2月Xcode命令行工具,使用RVM 1.10.3(以及适用于Mac的JwelleryBox),Ruby 1.9.3-p125编译良好,没有“使用clang”和共享链接以及64位架构。更重要的是,“gem install rails”命令完美无缺,没有关于libyaml支持的警告。