使用Xcode 4.3.1在Mac上更新Ruby

xiv*_*ivo 19 ruby xcode rvm osx-lion

我正在使用RVM来安装它,它给了我这个错误:

The provided compiler '/usr/bin/gcc' is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`.
Run Code Online (Sandbox Code Playgroud)

我在Lion 10.7.3上,我有Xcode 4.3.1.

shi*_*eya 41

简短的回答是你可以抓住RVM主分支(不稳定)用LLVM构建它(不是gcc,我最初输入错误).它有适当的补丁,默认情况下使用Xcode 4.3.1使1.9.3-p125运行(至少更好).我提供了补丁.如果您已经安装了RVM,rvm get head将安装master分支.使用Xcode 4.3.1安装的命令行工具,您可以成功安装Ruby 1.9.3-p125.

背景

这是因为Ruby 1.9.3-p125的简单配置问题,它不允许动态链接模块工作.如果你使用的是Xcode 4.3.x(Ruby Issue#6080),就会发生这种情况.

此问题已在更改集r34840中修复.

RVM具有根据版本提供的补丁系统.此修补程序包含在RVM(现在的主分支)中,现在默认为p125配置步骤.

Xcode 4.3.x命令行工具

首先,使用Xcode 4.3.x,您需要在安装Xcode 4.3.x之后安装命令行工具,方法如下:1)启动Xcode,2)从菜单栏上的"Xcode"项打开"Preferences".3)选择"下载"选项卡(图标).4)点击"命令行工具"(方向来自我朋友的网站借"安装"按钮点击这里)

如果Xcode 4.3.1正确安装,那么cc --version应该发出:

% cc --version
Apple clang version 3.1 (tags/Apple/clang-318.0.54) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

autoconf和automake

你需要autoconf和automake,因为Xcode 4.3.x没有它们.安装它们brewMacPorts.使用MacPorts:

sudo port install autoconf automake
Run Code Online (Sandbox Code Playgroud)

使用RVM的建议安装步骤

然后,要安装RVM的特定分支,您可以:

REPO=wayneeseguin
BRANCH=master # stable for the stable branch
curl -s https://raw.github.com/${REPO}/rvm/${BRANCH}/binscripts/rvm-installer > /tmp/rvm-installer.sh
bash /tmp/rvm-installer.sh --branch ${REPO}/${BRANCH}
Run Code Online (Sandbox Code Playgroud)

或者,如果已安装RVM:

rvm get head   # master branch, for stable branch "rvm get stable"
Run Code Online (Sandbox Code Playgroud)

之后,使用rvm pkg命令安装openssl,iconv和readline以获得最佳结果.我最近关注.其中一部分可能需要包含在RVM中.

rvm pkg install openssl
rvm pkg install readline # if you prefer GNU readline
Run Code Online (Sandbox Code Playgroud)

然后,最后,安装Ruby.

rvm install 1.9.3-p125 --patch xcode-debugopt-fix-r34840.diff --with-readline-dir=$rvm_path/usr --with-openssl-dir=$rvm_path/usr --with-tcl-lib=/usr --with-tk-lib=/usr
Run Code Online (Sandbox Code Playgroud)

rvm pkg的帮助推荐不同的参数,帮助打破了.所以现在使用上面.你需要tcl/tk参数,如果你通过MacPorts(像我一样)

顺便说一句,有可能安装旧的Xcode然后运行rvm export CC="gcc-4.2" rvm install 1.9.3-p125,但我个人认为clang(LLVM)是未来的方式,如果可能的话.

希望这可以帮助.

关于2012/3/31的补充说明

iconv不需要安装,还添加了autoconf/automake要求以进行说明.

关于2012/4/13的补充说明

最新的稳定版不包括补丁要求动态链接默认工作.你需要--patch xcode-debugopt-fix-r34840.diff在构建1.9.3-p125时添加.


doc*_*hat 11

从RVM 1.10.2开始,您只需安装自制软件包apple-gcc42,所有内容都将为"Just Work(TM)":

brew tap homebrew/dupes ; brew install apple-gcc42 ; rvm install ruby-1.9.2

再见!

[根据以下评论更新]