4

我正在尝试安装 Ruby,这样我就可以参加“Learn Ruby the Hard Way”课程,而我在安装最新版本的 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

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

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

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

4

1 回答 1

1

需要注意的是,OS X 没有放入任何东西,/usr/local/lib所以/usr/local/bin您必须自己在那里安装了一些东西,甚至可能是无意中安装的。

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

您可能拥有的是为您机器上的错误架构编译的库。这些可能是从旧的 PowerPC 安装,甚至是从 10.5 之前的 OS X 版本的 Intel 32 位安装的。

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

于 2012-09-07T06:07:59.880 回答