我正在尝试安装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。感谢您的帮助,这是我在这里发表的第一篇文章,如果我做错了或需要提供更多信息,请告诉我。我基本上从我链接的标题中偷走了我的头衔,因为我不确定如何格式化标题,我希望没关系。
答案 0 :(得分:1)
作为一个注释,OS X不会在/usr/local/lib
或/usr/local/bin
中放置任何内容,因此您必须自己安装一些内容,甚至可能无意中安装。
如果您使用的是像rvm或rbenv这样的Ruby管理器,那么他们会使用特殊的构建工具来帮助完成此过程。它比从源代码安装要容易得多,因为正确的补丁不仅适用于Ruby,还适用于libz
等依赖项。
您可能拥有的是针对计算机上错误架构编译的库。这些可能是从旧的PowerPC安装版本,甚至是10.5版之前的OS X版本的英特尔32位版本。
您最好的选择可能只是删除/usr/local/lib/libz*
并使用与您的操作系统捆绑在一起的那些。您应该在/usr/lib/libz*
中拥有一组可以正常工作的必需文件。