我如何在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
- 打开Xcode
- 打开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!
- 从/ usr / local /或安装它们的任何位置卸载/删除所有手动安装的旧版ruby版本和额外(sqlite3,libxml2-xxx,libxslt-xxx)的痕迹。
- 下载并安装JewlryBox http://unfiniti.com/software/mac/jewelrybox这是一个RVM GUI界面,用于pipe理你的ruby和gem。
- 在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支持的警告。