使用Xcode 4.3.1在Mac上更新Ruby

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

The provided compiler '/usr/bin/gcc' is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`. 

我在Lion 10.7.3上,我有Xcode 4.3.1。

简短的回答是你可以抓住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 

autoconf和automake

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

 sudo port install autoconf automake 

推荐的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} 

或者如果已经安装了RVM:

 rvm get head # master branch, for stable branch "rvm get stable" 

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

 rvm pkg install openssl rvm pkg install readline # if you prefer GNU readline 

然后,最后,安装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 

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

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

希望这可以帮助。

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

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

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

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

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

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

再见!

[根据以下评论更新]

您只需要在/ usr / bin中安装gcc-4.2。

这是下载https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg 。

然后CC = / usr / bin / gcc-4.2 rvm install 1.8.7 –force

我认为每个人写的都很困惑

 rvm get head rvm get stable 

相反,你应该只写

 rvm get head 

否则它将无法工作(因为稳定还没有相应的补丁)。

我也遇到过ruby-1.9.3-p125的问题,这就是我所做的,希望这可以帮助某人下线。

rvm install ruby​​-1.9.3-p194

并检查安装了新的ruby

rvm列表

 ruby-1.9.2-p318 [ x86_64 ] ruby-1.9.3-p125 [ x86_64 ] I want to remove this one ruby-1.9.3-p194 [ x86_64 ] I want to use this one 

然后我删除了旧的ruby版本

rvm删除ruby-1.9.3-p125

并设置新的ruby ruby​​-1.9.3-p194供使用并安装gem

rvm使用ruby-1.9.3-p194

捆绑安装

我已经安装并测试了以下类似于上面的建议。 但是我只是卸载了所有内容并为所有这些进行了基本安装。 唯一的例外是,不是使用xcode首选项对话框来安装命令行工具(对我来说失败了)。 Apple发布了一个独立的站点,我在第2项中使用了它。)

  1. 下载并安装xCode 4.3.2
  2. 下载并安装Xcode的命令行工具2012年3月下旬
  3. 设置xcode路径$ xcode-select -switch /Application/xcode.app/Content/Developer
  4. 安装Homebrew,然后通过Brew安装git,autoconf,automake,libyaml,libksba,wget。
  5. 安装RVM确保它在shell中设置
  6. rvm install ruby​​-1.9.3-p125

有些文章推荐这个用于ruby> = 1.9.3,这就是我测试过并且目前正在使用的所有内容。 我确实安装并使用了mysql2,sqlite和通常的嫌疑人(GEM)他们都编译并通过了我的一些基本测试

希望这可以帮助。