我为自己的无知而道歉 - 我对此很新 - 但我已经尝试了一切,并且无法使用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"`
我按照此处的说明更新了我的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。
你是怎么做到的?我对此真的很陌生,并且通过纯粹的猜测工作已经做到了这一点。我知道效率低下。
大家好 - 我已经放弃了一段时间,但是我将在本周末再试一次。感谢您的所有建议,我会告诉您从那里发生的事情。对于像我这样的新手,我严重低估了安装东西的难度。
答案 0 :(得分:18)
我不知道你是否还在上面,但我只是做了这个::
sudo rm /usr/local/lib/libz.*
:)
可能有些软件安装了错误的lib ...错误的架构
答案 1 :(得分:4)
当您从32位升级到64位时,需要重新编译RVM控制下的所有Ruby二进制文件。这意味着Ruby和gems具有已编译的C。
这里有几个步骤可以尝试一下这个问题:
rvm get head
更新您的RVM。目前的转速。 RVM是1.5.1,已于昨天更新。rvm uninstall
重新安装所有Rubies,然后使用版本号相同的rvm install
重新安装。这应该将Ruby版本带到64位。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尚未初始化。它已安装,但这不是一回事。
答案 2 :(得分:1)
我认为这是由之前的MacPorts安装引起的。通过运行
删除这些符号/ whatelsesudo rm /usr/local/lib/libz.*
为我修好了
答案 3 :(得分:1)
我放弃尝试在OS X 10.8上使用RVM安装Ruby 1.9.3,并使用自制软件来完成。 它就像一个魅力 - 用一个命令安装ruby:
$ brew install ruby
答案 4 :(得分:0)
如果您没有对OS X安装做任何疯狂的事情,这应该是开箱即用的。我的建议是什么:
由于您的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