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

问题描述 投票:5回答:3

我知道这个问题有一些类似的问题,但我找不到符合我的问题的问题。

我不能用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
ruby installation macos-mojave
3个回答
3
投票

对于其他任何踩到同一块地雷的人来说,对我而言,ranlib通过homebrew包裹提供了cctools的不兼容副本。要解决它,我只是卸载它:

brew uninstall cctools


2
投票

对于那些发现这个并且没有得到上述解决方案帮助的人...

我也遇到过这个问题。在我的情况下,由于我升级到(MacOS)Mojave后MacPorts已经过时了。

我按照MacPorts迁移指南中列出的步骤进行操作:https://trac.macports.org/wiki/Migration

关闭并重新开放的航站楼(仅限b / c)

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


0
投票

所以,我认为对此的修复正在运行:

$ sudo xcodebuild -runFirstLaunch

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

我不知道究竟修复了什么,但我完全删除了XCode和ruby仍然没有安装。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.