无法在Mojave上安装任何版本的ruby-内部ranlib命令失败

时间:2019-01-25 10:07:05

标签: ruby installation macos-mojave

我知道与此有关的一些silimar问题,但找不到与我的问题相符的问题。

我无法使用rvm或rbenv安装任何版本的ruby。两者都导致相同的错误。例如,以下是安装ruby 2.5.3时的日志摘录:

compiling loadpath.c
making srcs under enc
linking static-library libruby.2.5.3-static.a
make[1]: Nothing to be done for `srcs'.
generating transdb.h
/opt/local/bin/ranlib: object: libruby.2.5.3-static.a(dln.o) malformed object (unknown load command 1)
ar: internal ranlib command failed
make: *** [libruby.2.5.3-static.a] Error 1
make: *** Waiting for unfinished jobs....
transdb.h updated

问题似乎在这里:

/opt/local/bin/ranlib: object: libruby.2.5.3-static.a(dln.o) malformed object (unknown load command 1)
ar: internal ranlib command failed
make: *** [libruby.2.5.3-static.a] Error 1

我尝试过的

  • 安装,重新安装,卸载rvm,rbenv。
  • 更新,重新安装XCode。
  • 删除,安装XCode命令行工具。

是什么原因造成的?

更新

gcc --version返回:

gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.0 (clang-1000.10.44.4)
Target: x86_64-apple-darwin18.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

3 个答案:

答案 0 :(得分:2)

对于踩在同一地雷上的其他人来说,对我来说,是ranlib的{​​{1}}包中的homebrew副本与cctools包不兼容。要修复它,我刚刚将其卸载:

brew uninstall cctools

答案 1 :(得分:2)

对于那些发现此问题但上述解决方案没有帮助的人...

我也遇到了这个问题。就我而言,这是由于我升级到(MacOS)Mojave之后MacPorts已过时。

我遵循了MacPorts迁移指南中列出的步骤: https://trac.macports.org/wiki/Migration

关闭并重新打开的终端机(仅b / c)

rvm install ruby并得到Install of ruby-2.6.0 - #complete,万岁!

答案 2 :(得分:0)

因此,我认为对此修复程序正在运行:

$ sudo xcodebuild -runFirstLaunch

为什么?我不确定。我的怀疑是我试图在更新XCode之前构建ruby。但是,一旦我更新了XCode,我怀疑还是以某种方式引用了错误/较旧的命令行工具。

我不知道到底是什么解决了这个问题,但是我完全删除了XCode,而ruby仍然没有安装。

然后我完全删除了命令行工具,而ruby仍然没有安装。

然后,我只重新安装了没有XCode的命令行工具,而ruby仍然没有安装。

然后我运行了runFirstLaunch命令并安装了ruby。