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

时间:2011-03-24 23:35:45

标签: ruby macos rvm

我为自己的无知而道歉 - 我对此很新 - 但我已经尝试了一切,并且无法使用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分别如下:

PATH

`/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 *

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

8 个答案:

答案 0 :(得分:18)

我不知道你是否还在上面,但我只是做了这个::

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

:)

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

答案 1 :(得分:4)

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

这里有几个步骤可以尝试一下这个问题:

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

  5. 编辑:

      

    [...]我能够成功安装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站点上“Installation”的“安装后”部分中的步骤。另请参阅“安装故障排除”部分,然后再进行一次。
    2. 确认您已安装Apple的XCode开发系统的当前版本。

答案 2 :(得分:1)

我认为这是由之前的MacPorts安装引起的。通过运行

删除这些符号/ whatelse
sudo rm /usr/local/lib/libz.* 

为我修好了

答案 3 :(得分:1)

我放弃尝试在OS X 10.8上使用RVM安装Ruby 1.9.3,并使用自制软件来完成。 它就像一个魅力 - 用一个命令安装ruby:

$ brew install ruby​​

答案 4 :(得分:0)

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

  1. 尝试从头开始重新安装开发人员工具。
  2. 在OS X中创建新用户,登录并尝试以正常方式安装RVM
  3. 由于您的RVM安装仅适用于'tl'用户,因此尝试使用全新用户进行RVM会让您有一个干净利落的开始。如果安装RVM + Ruby 1.9.2也失败了新用户,那么我建议重新安装你的机器,因为可能会有太多的事情发生。

答案 5 :(得分:0)

有些程序在你的/ 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所需的拱门

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

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

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

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

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

brew install ruby