6

OS X 10.9 带有 ruby​​ 2.0.0p195,但我需要安装 Ruby 1.8.7。我一直遇到错误。我安装了 Xcode5-DP,我相信也安装了命令行工具。

在终端:

sudo rvm install 1.8.7
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10/x86_64/ruby-1.8.7-p371.
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies.
Installing requirements for osx, might require sudo password.
Certificates in '/usr/local/etc/openssl/cert.pem' already are up to date.
Installing Ruby from source to: /Users/alextoul/.rvm/rubies/ruby-1.8.7-p371, this may take a while depending on your cpu(s)...
ruby-1.8.7-p371 - #downloading ruby-1.8.7-p371, this may take a while depending on your connection...
ruby-1.8.7-p371 - #extracted to /Users/alextoul/.rvm/src/ruby-1.8.7-p371 (already extracted)
Patch stdout-rouge-fix was already applied.
Patch no_sslv2 was already applied.
ruby-1.8.7-p371 - #configuring...
Error running 'env CFLAGS=-O3 -I/usr/local/opt/libyaml/include -I/usr/local/opt/readline/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/libxslt/include -I/usr/local/opt/libksba/include -I/usr/local/opt/openssl098/include LDFLAGS=-L/usr/local/opt/libyaml/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/libxslt/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/openssl098/lib ./configure --prefix=/Users/alextoul/.rvm/rubies/ruby-1.8.7-p371 --disable-install-doc --without-tcl --without-tk --enable-shared',
please read /Users/alextoul/.rvm/log/ruby-1.8.7-p371/1371228839_configure.log
There has been an error while running configure. Halting the installation.

1371228839_configure.log 说:

./configure
configure: WARNING: unrecognized options: --without-tcl, --without-tk
checking build system type... i686-apple-darwin13.0.0
checking host system type... i686-apple-darwin13.0.0
checking target system type... i686-apple-darwin13.0.0
checking whether the C compiler works... no
configure: error: in `/Users/alextoul/.rvm/src/ruby-1.8.7-p371':
configure: error: C compiler cannot create executables
See `config.log' for more details

其他(有用的)信息:

ruby -v
> ruby 2.0.0p195 (2013-05-14 revision 40734) [universal.x86_64-darwin13]
brew update
> Already up-to-date.
gcc --version
> Configured with: --prefix=/Applications/Xcode5-DP.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode5-DP.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1
> Apple LLVM version 5.0 (clang-500.1.58) (based on LLVM 3.3svn)
> Target: x86_64-apple-darwin13.0.0
> Thread model: posix
sudo rvm requirements
> Installing requirements for osx, might require sudo password.
> Certificates in '/usr/local/etc/openssl/cert.pem' already are up to date.

谢谢你的帮助。

4

5 回答 5

13

10.9 是操作系统的早期 beta 版本。[编辑:请注意这个答案的 2013 年 7 月日期] 如果我运行的是 10.9,我会假设我必须从头开始重新安装操作系统至少 2 次。(在 beta 周期中至少有一次,因为它是 beta 版,而当 10.9 正式发布时,因为,好吧,beta 版)。

鉴于此,我建议采取四种行动方案(选择 1 项或多项):

  • 与 RVM 人员一起研究 10.9 可能更改的编译器环境并编译 Ruby 1.8.7。这更棘手,因为从技术上讲,这些东西在 NDA 之下。
  • 相反,设置一个 VM 并在 VM 上运行 Ruby 1.8.7。使用Vagrant和 Chef/Puppet的奖励积分,因为您甚至可能需要重建 VM。(只需将 Vagrantfile 和 Puppet 或 Chef 配置文件保存在 Github/Dropbox/whatever 上,这样您就可以克隆它们并从头开始重新生成 VM。)
  • 或者只需重新启动到 10.8 即可完成生产工作。10.8 是生产级操作系统,应谨慎对待 10.9 - 它可能会吃掉你的工作。它真的不应该用于生产目的(又名:日常编写 Ruby 代码)。如果你在 Cocoa/Objective-C 中编写一个仅 10.9 的应用程序(或更新 RubyMotion 或其他东西),那可能是另一回事(但我仍然会保持良好的备份并温柔地对待它)。
  • 努力为 Ruby 2.0 更新您的代码库,因为无论如何官方不再支持 Ruby 1.8.7。

编辑(2013 年 10 月 24 日):如果您在这里是因为您刚刚安装了 Mavericks(2013 年 10 月 22 日发布),希望在此版本发布后几天让 Ruby 1.8.7 工作,而 RVM 不适合您(因为你很不耐烦,等不及了),这是你可以做的(应该可以,虽然我不是 rbenv 用户):

  1. 使用 macports 安装port install ruby. 这是 Ruby 1.8.7。这个编译在我的 Mavericks 机器上对我有用(尽管在撰写本文时您需要从源代码安装 Macports安装命令行开发人员工具,即使您安装了 XCode 5。是的,真的)。
  2. 现在,安装rbenv
  3. 文件夹/opt/local/bin/ruby1.8中的符号链接。~/.rbenv/versions/具体来说~/.rbenv/versions/ruby-1.8.7-p374
  4. 阅读 rbenv 文档,但它现在应该可以工作了!(至少来自文档。同样,不是rbenv用户,但确实在电视上播放)

我相信你也可以用自制软件来做到这一点,但我知道 Ruby 1.8.7 可以在最新的 Macports 上正确安装,因为这就是我使用的(它只是为我安装干净)。

于 2013-06-14T23:44:58.487 回答
10

当您看到此错误消息时:

配置:错误:C 编译器无法创建可执行文件

首先,确保您已升级命令行工具:

$ xcode-select --install

现在,Apple 希望您在使用这些工具之前同意他们的许可:

$ gcc
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

$ sudo gcc
You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.
[...]

接受它后,命令行工具将按预期工作。

于 2013-10-24T12:45:13.677 回答
8

如果您在 OS X Mavericks 上安装了开发人员工具,Ruby 1.8 已经与 2.0 一起安装。因此,您需要做的就是切换“当前”符号链接以指向 1.8 目录。

#Install Xcode Developer tools
xcode-select --install

#Delete Current symbolic link to Ruby 2.0
sudo rm /System/Library/Frameworks/Ruby.framework/Versions/Current

#Create new Current symbolic link to Ruby 1.8
sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8 /System/Library/Frameworks/Ruby.framework/Versions/Current

#Check Ruby version is 1.8.7
ruby -v
于 2013-11-06T12:13:31.560 回答
3

试试这个(确保开发工具链是可访问的):

$ sudo xcode-select -s /Applications/Xcode5-DP.app/Contents/Developer

然后重试。

于 2013-06-22T12:43:21.143 回答
0

尝试切换编译器

rvm install 1.8.7 --with-gcc=clang
于 2013-06-14T22:04:13.203 回答