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

我正在尝试安装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并安装了它。

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

 rvm install 1.9.3 --with-gcc=clang 

RVM需要gcc-4.2才能够安装ruby 1.9.3。 不幸的是,狮子不包括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。 我build议下载这个软件包。

 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 

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

 brew install ruby 
  1. 打开Xcode
  2. 打开Xcode首选项
  3. 打开下载选项卡
  4. 检查命令行工具

Xcode截图

先试试这个:

 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]" 

实际上, ruby-1.9.3-p125现在可以和gcc-llvm 。 但是,目前rvm稳定/最新版本还没有。 但是,这只是rvm谨慎,现在有一个解决scheme在rvm的主分支中的解决方法。

简单地说,将rvm升级到master分支并安装/升级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! 
  1. 从/ usr / local /或安装它们的任何位置卸载/删除所有手动安装的旧版ruby版本和额外(sqlite3,libxml2-xxx,libxslt-xxx)的痕迹。
  2. 下载并安装JewlryBox http://unfiniti.com/software/mac/jewelrybox这是一个RVM GUI界面,用于pipe理你的ruby和gem。
  3. 在JewlryBox中,点击“添加Ruby”,然后select你想要安装的ruby版本(我select了64位,Enabled Shared并且没有勾选/使用“使用clang”选项)。

使用OS X Lion 10.7.3和Xcode 4.3命令行工具安装。

input以下命令

  • 〜$:source〜/ .rvm / scripts / rvm
  • 〜$:type rvm | 头-n 1

rvm是一个函数

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

  • 〜$:rvm install 1.9.3

  • 〜$:rvm使用1.9.3
  • 铿锵并没有为我切割任何ruby,而且rvm安装ruby失败了,无论是单用户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中创build一个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 install期间创build的。 我做的最后一件事就是在OSX 10.7中的我的偏好设置窗格中,并将我的用户添加到新的rvm组中。 最后我重装我的terminal,并能够通过rvm单用户安装1.9.3。

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

    使用--with-gcc=clang解决scheme产生了关于yamlparsing器的轻度臭名昭着的错误:

     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运行的时候编译好了,我甚至在手动build立之后把它安装在/ usr / lib中,我不明白为什么rvm couldn即使使用–shared --shared-libs选项,也不会find并使用该版本的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中。

    对我来说,解决scheme最终是使用sudo运行rvm命令。 以root用户身份运行编译似乎消除了苹果公司的GCC工具链对用户做任何与编译软件一样脏的事情的不满。

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

    build议以root身份编译,因为我认为它是一种安全风险(特别是最近在ruby stack和rubygems.org中发现的漏洞) – 但是这样做会在rvm下产生一个干净的ruby安装,更多的人才或时间找出与苹果的海湾合作委员会的问题的根源。

    随着2012年2月新的Xcode命令行工具,使用RVM 1.10.3(和JBBoxBox for Mac),Ruby 1.9.3-p125编译得很好,没有“使用clang”和共享链接和64位体系结构。 更重要的是,“gem install rails”命令完美地工作,没有关于libyaml支持的警告。