获取libxml2.2.dylib的错误“文件不是必需的体系结构”

时间:2010-01-20 09:18:03

标签: ruby macos ruby-1.9 rvm

我正在尝试使用rvm在运行Snow Leopard的Mac上安装Ruby 1.9.2。

我的.bash_profile包含

ARCHFLAGS="-arch x86_64"

要安装ruby,我运行:

rvm install 1.9.2 -C --enable-shared

编译时出错。这是make.error.log:

[2010-01-20 10:03:00] make 
ld: in /usr/local/lib/libxml2.2.dylib, file is not of required architecture
collect2: ld returned 1 exit status
make[1]: *** [../../.ext/i386-darwin10.2.0/tcltklib.bundle] Error 1
make: *** [mkmain.sh] Error 1

修改

我从源代码安装了readline并尝试了这样的安装:

rvm install 1.9.2 -C --enable-shared,--with-readline-dir=/usr/local 

导致与以前相同的错误。

rcltklib.bundle文件的位置为:

/usr/local/lib/ruby/1.8/i686-darwin9.7.0/tcltklib.bundle  

(我认为这个文件是Ruby OSX安装的一部分)

2 个答案:

答案 0 :(得分:8)

现在,终于我明白了 我确实从 ruby​​osx 安装了ruby 1.8.7,似乎有一些破坏的库,rvm用来编译它的红宝石。

解决方案是从/usr/local中删除rubyosx红宝石。

不太激烈的解决方案是在使用rvm进行编译时重命名/usr/local文件夹。之后,您可以将其命名,并按预期工作。

很高兴现在有效。

答案 1 :(得分:0)

您正在将ARCHFLAGS设置为两种不同的体系结构。为什么?请尝试仅使用-arch -x86_64(据我所知,这是雪豹的默认设置)。