使用RVM Mac OS X安装Ruby 1.9.2时出现问题

我为自己的无知道歉 – 我对此很新 – 但我已经尝试了一切,并且无法使用RVM安装1.9.2。 我相信我已经正确安装了RVM,当我去安装1.9.2时,当ruby尝试编译时,我的make日志中出现以下错误:

ld: in /usr/local/lib/libz.1.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64) for architecture x86_64 collect2: ld returned 1 exit status make[1]: *** [../../../.ext/x86_64-darwin10.6.0/digest/md5.bundle] Error 1 make: *** [mkmain.sh] Error 1 

其他一些信息:我在32位运行OS X,并收到类似的错误 – 用我相信(i36)替换(x86_64)。 我现在以64位运行。

*更新*:

我已经完成了TinMan要求我做的所有事情,但仍无济于事 – 只想指出我可以安装1.8.7就好了。 尝试安装1.9.1和1.9.2给出了以下错误消息:

 `Installing Ruby from source to: /Users/tl/.rvm/rubies/ruby-1.9.2-p180, this may take a while depending on your cpu(s)... ruby-1.9.2-p180 - #fetching ruby-1.9.2-p180 - #downloading ruby-1.9.2-p180, this may take a while depending on your connection... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 8609k 100 8609k 0 0 655k 0 0:00:13 0:00:13 --:--:-- 939k ruby-1.9.2-p180 - #extracting ruby-1.9.2-p180 to /Users/tl/.rvm/src/ruby-1.9.2-p180 ruby-1.9.2-p180 - #extracted to /Users/tl/.rvm/src/ruby-1.9.2-p180 ruby-1.9.2-p180 - #configuring ruby-1.9.2-p180 - #compiling ERROR: Error running 'make ', please read /Users/tl/.rvm/log/ruby-1.9.2-p180/make.log ERROR: There has been an error while running make. Halting the installation.` 

另外,我已经升级了我的autoconf,automake,m4和libtools。

最后,我的路径和.bash_profiles分别如下所示:

路径

 `/usr/local/upgraded/bin /usr/bin /bin /usr/sbin /sbin /usr/local/bin` 

.bash

 `export PATH=$PATH:/opt/local/bin export MANPATH=$MANPATH:/opt/local/share/man export INFOPATH=$INFOPATH:/opt/local/share/info [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"` 

*更新2 *

我按照以下说明更新了我的autoconf,automake,m4和libtools: http ://tom.meinlschmidt.org/2010/11/22/upgrade-autoconfautomake-in-osx/

RVM信息:`系统:

  system: uname: "Darwin Tam-Les-MacBook-Pro.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:11:58 PST 2010; root:xnu-1504.9.26~3/RELEASE_X86_64 x86_64" bash: "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)" zsh: "/bin/zsh => zsh 4.3.9 (i386-apple-darwin10.0)" rvm: version: "rvm 1.5.2 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]" homes: gem: "not set" ruby: "not set" binaries: ruby: "/usr/bin/ruby" irb: "/usr/bin/irb" gem: "/usr/bin/gem" rake: "/usr/bin/rake" environment: PATH: "/usr/local/upgraded/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/opt/local/bin:/Users/tl/.rvm/bin:/Users/tl/.rvm/bin" GEM_HOME: "" GEM_PATH: "" MY_RUBY_HOME: "" IRBRC: "" RUBYOPT: "" gemset: ""` 

此外,您的PATH看起来不像RVM已被允许初始化自身。 当RVM初始化时,它将首先将其路径放到〜/ .rvm中。

你是怎样做的? 我对此非常陌生,并且通过纯粹的猜测工作得到了这一点。 我知道效率低下。

*更新3 *

大家好 – 这已经有一段时间了,因为我放弃了这一点,但我将在本周末再试一次。 感谢您的所有建议,我会告诉您那里发生的事情。 对于像我这样的新手,我严重低估了安装东西的难度。

我不知道你是否仍在使用它,但我只是通过这样做成功::

sudo rm /usr/local/lib/libz.*

🙂

可能有些软件安装了错误的lib …错误的架构

当您从32位升级到64位时,需要重新编译RVM控制下的所有Ruby二进制文件。 这意味着Ruby和gems与编译C.

这里有几个步骤尝试了我的头脑,我做了一会儿:

  1. 确保您的XCode是最新的。 不要相信Snow Leopard DVD上的版本因为它已损坏。 从Apple的XCode站点下载并安装当前副本。
  2. 使用rvm get head更新您的RVM。 目前的转速。 RVM是1.5.1,昨天更新了。
  3. 使用带有Ruby版本的rvm uninstall重新安装所有rvm uninstall ,然后使用相同版本号的rvm install 。 这应该将Ruby版本带到64位。
  4. 使用gem pristine -all为每个已安装的Ruby重建gem pristine -all 。 你可以使用rvm ruby 'gem pristine --all'自动完成所有这些操作。

编辑:

[…]我能够成功安装1.8.7但仍然收到1.9.2的相同错误。 还有什么我想念的吗? .bash_profile在这种情况下是否重要?

尝试键入rvm notes并按照处理Mac OS依赖关系的说明进行操作。 您可能遗漏了导致问题的原因。 如果这不能帮助您使用错误消息的文本编辑原始问题 ,那么我们就可以看到它。

[…]当它经历提取阶段时,它说:’#remove到/Users/tl/.rvm/src/ruby-1.9.2-p180(已经提取)’

啊,去过那儿。 执行rm ~/.rvm/src/ruby-1.9.2-p180/*清空该目录。 RVM将特定Ruby的tarball下载到~/.rvm/archive目录中,然后将其提取到~/.rvm/src 。 如果在提取过程中出现问题,则可能只有一些文件,这会导致配置/生成周期中出现故障。


编辑:

升级了我的autoconf,automake,m4和libtools

你是如何安装和升级它们的? Ruby on Mac OS需要Apple的标题和XCode。

请将rvm info的输出添加到原始问题中。 它将有各种环境信息。

此外,您的PATH看起来不像RVM已被允许初始化自身。 当RVM初始化时,它将首先将其路径放到~/.rvm


编辑:

rvm info的输出显示RVM尚未初始化。 它已安装,但这不是一回事。

  1. 请仔细阅读文档,并检查您是否已完成RVM站点上“ 安装 ”的“ 安装后”部分中的步骤。 另请参阅“安装故障排除”部分,然后再进行一次。
  2. 确认您已安装Apple的XCode开发系统的当前版本。

我认为这是由之前的MacPorts安装引起的。 通过运行删除那些符号/ whatelse

 sudo rm /usr/local/lib/libz.* 

为我修好了

我放弃了尝试在OS X 10.8上使用RVM安装Ruby 1.9.3,并使用自制程序来执行此操作。 它就像一个魅力 – 用一个命令安装ruby:

$ brew install ruby

如果您没有对OS X安装做任何疯狂的事情,这应该是开箱即用的。 我的建议是什么:

  1. 尝试从头开始重新安装开发人员工具。
  2. 在OS X中创建一个新用户,登录并尝试以正常方式安装RVM

由于您的RVM安装仅适用于’tl’用户,因此尝试使用全新用户进行RVM会让您有一个干净利落的开始。 如果安装RVM + Ruby 1.9.2也失败了新用户,那么我建议重新安装你的机器,因为可能会有太多的事情发生。

有些程序在你的/ usr / local中安装了一个版本的zlib,它不能用来链接Ruby,因为它(我想)i386和你的Ruby-in-minting是x64。

你的选择:

1)通过简单的重命名暂时将/ usr / local移开

  $mv /usr/local /usr/local-disabled 

并尝试再次编译。 这是一种硬核措施,但这可能会为您提供正确的图书馆链接。

2)弯曲RVM以使用适合您在那里的zlib的架构来构建Ruby。 首先使用file并检查zlib是哪个拱。

 $file /usr/local/lib/libz.1.dylib /usr/local/lib/libz.1.dylib: Mach-O dynamically linked shared library i386 

这将告诉您配置RVM需要哪个arch

 Place the following in your ~/.rvmrc file: rvm_archflags="-arch i386" 

3)安装一个较新的zlib,默认情况下可以使用正确的arch编译 – http://www.zlib.net/然后使用默认设置重试构建ruby。

4)确实,正如Piotr建议删除zlib的有问题的副本,看看哪个程序会出现段错误:-P

尝试这个,就像一个魅力: https : //rvm.io/packages/zlib/

 rvm pkg install zlib rvm reinstall 1.9.2 --with-zlib 

RVM依赖于MacOSX下的Homebrew,所以无论哪种方式你都会回到case调用

 brew install ruby