无法在 Mac 上安装 RubyGems:因为不支持 Objective-C 垃圾回收



我正在MacOS上安装Ruby和RVM,显然它也安装了RubyGems:

macruby-0.12 - #installing rubygems-3.0.9.

在这行之后我得到了这个错误:

Error running 'env GEM_HOME=/Users/alex/.rvm/gems/macruby-0.12@global GEM_PATH= /Users/alex/.rvm/rubies/macruby-0.12/bin/ruby -d /Users/alex/.rvm/src/rubygems-3.0.9/setup.rb --no-document',
please read /Users/alex/.rvm/log/1635157083_macruby-0.12/rubygems.install.log

文件/Users/alex/.rvm/log/1635157083_macruby-0.12/rubygems.install.log有如下日志:

[2021-10-25 13:18:15] /Users/alex/.rvm/rubies/macruby-0.12/bin/ruby
current path: /Users/alex/.rvm/src/rubygems-3.0.9
PATH=/usr/local/Cellar/ruby/2.4.1_1/bin:/usr/local/mysql/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/alex/.rvm/bin
command(7): env GEM_HOME=/Users/alex/.rvm/gems/macruby-0.12@global GEM_PATH= /Users/alex/.rvm/rubies/macruby-0.12/bin/ruby -d /Users/alex/.rvm/src/rubygems-3.0.9/setup.rb --no-document
dyld: dyld cache load error: existing shared cache in memory is not compatible
dyld: Library not loaded: /Library/Frameworks/MacRuby.framework/Versions/0.12/usr/lib/libmacruby.dylib
Referenced from: /Users/alex/.rvm/rubies/macruby-0.12/usr/bin/macruby
Reason: no suitable image found.  Did find:
/Users/alex/.rvm/rubies/macruby-0.12/usr/lib/libmacruby.dylib: cannot load '/Users/alex/.rvm/rubies/macruby-0.12/usr/lib/libmacruby.dylib' because Objective-C garbage collection is not supported
/Users/alex/.rvm/rubies/macruby-0.12/usr/lib/libmacruby.dylib: stat() failed with errno=1

我该如何修复它?

MacRuby是基于macOS原语的Ruby语言的完全不同的(显然没有维护的)重新实现。鉴于MacRuby从未完成,最后一次更新是在2012年,MacRuby似乎不再与现代macOS版本兼容。

话虽这么说,MacRuby不同于"默认的"。Ruby实现通常称为MRI或Ruby。在你的Mac(以及Linux、其他*nix系统或Windows)上,你可以使用标准的Ruby。

要使用RVM安装最新版本的Ruby,可以运行

rvm install 3.0
rvm use 3.0

在写这个答案的时候,这将在你的Mac上安装并激活Ruby 3.0.2。

最新更新