无法在Mountain Lion上使用RVM安装Ruby 1.9.3:运行make时出错

时间:2012-09-07 02:46:24

标签: ruby macos rvm osx-mountain-lion libz

我正在尝试安装Ruby,所以我可以做“学习Ruby的艰难之路”课程,而我在安装最新版本的Ruby时遇到了很多麻烦

这是我日志的相关部分:

compiling md5ossl.c
linking shared-object digest/md5.bundle
ld: in /usr/local/lib/libz.1.dylib, file was built for unsupported file format ( 0xce 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 0 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (x86_64): /usr/local/lib/libz.1.dylib for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [../../../.ext/x86_64-darwin12.1.0/digest/md5.bundle] Error 1
make[1]: *** [ext/digest/md5/all] Error 2
make: *** [build-ext] Error 2

我用Google搜索,发现这篇文章看起来完全相同:Cannot install Ruby 1.9.3 on Mountain Lion w/ Jewlery Box: Error running make -j4 (have current readline, gcc)

但答案有一个模棱两可的“更新libz lib”。我不知道那是什么意思,我用Google搜索并找到zlib,但我不知道这些是否与libz相同?我还发现另一个帖子表明libz是libtool,我的libtool版本是Apple Inc.版本cctools-829,但是libtool和libz一样吗?我之前从未见过任何这些术语或之前使用过的Ruby,我只是完全糊涂了。

我有gcc 4.2.1和xcode 4.4.1。感谢您的帮助,这是我在这里发表的第一篇文章,如果我做错了或需要提供更多信息,请告诉我。我基本上从我链接的标题中偷走了我的头衔,因为我不确定如何格式化标题,我希望没关系。

1 个答案:

答案 0 :(得分:1)

作为一个注释,OS X不会在/usr/local/lib/usr/local/bin中放置任何内容,因此您必须自己安装一些内容,甚至可能无意中安装。

如果您使用的是像rvmrbenv这样的Ruby管理器,那么他们会使用特殊的构建工具来帮助完成此过程。它比从源代码安装要容易得多,因为正确的补丁不仅适用于Ruby,还适用于libz等依赖项。

您可能拥有的是针对计算机上错误架构编译的库。这些可能是从旧的PowerPC安装版本,甚至是10.5版之前的OS X版本的英特尔32位版本。

您最好的选择可能只是删除/usr/local/lib/libz*并使用与您的操作系统捆绑在一起的那些。您应该在/usr/lib/libz*中拥有一组可以正常工作的必需文件。