gem 更新システムは mach-o ファイルで失敗しますが、互換性のないアーキテクチャです (「arm64」があり、「x86_64」が必要です)
概要
こんにちは、このサイト https://gorails.com/setup/macos/14-sonoma から asdf を使用して Ruby をインストールしました
gem update –system の後、次のエラーが発生します。
<internal:/usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:127:in `require': dlopen(/Users/andreasgerecke/.gem/ruby/3.3.0/gems/stringio-3.1.0/lib/stringio.bundle, 0x0009): tried: '/Users/andreasgerecke/.gem/ruby/3.3.0/gems/stringio-3.1.0/lib/stringio.bundle' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/andreasgerecke/.gem/ruby/3.3.0/gems/stringio-3.1.0/lib/stringio.bundle' (no such file), '/Users/andreasgerecke/.gem/ruby/3.3.0/gems/stringio-3.1.0/lib/stringio.bundle' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')) - /Users/andreasgerecke/.gem/ruby/3.3.0/gems/stringio-3.1.0/lib/stringio.bundle (LoadError)
from <internal:/usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:127:in `require'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/remote_fetcher.rb:78:in `initialize'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/remote_fetcher.rb:56:in `new'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/remote_fetcher.rb:56:in `fetcher'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/spec_fetcher.rb:77:in `initialize'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/spec_fetcher.rb:43:in `new'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/spec_fetcher.rb:43:in `fetcher'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/commands/update_command.rb:141:in `fetch_remote_gems'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/commands/update_command.rb:168:in `highest_remote_name_tuple'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/commands/update_command.rb:233:in `rubygems_target_version'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/commands/update_command.rb:278:in `update_rubygems'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/commands/update_command.rb:99:in `execute'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/command.rb:326:in `invoke_with_build_args'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/command_manager.rb:254:in `invoke_command'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/command_manager.rb:193:in `process_args'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/command_manager.rb:151:in `run'
from /usr/local/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/gem_runner.rb:56:in `run'
from /usr/local/opt/ruby/bin/gem:12:in `<main>'
誰か助けてくれませんか?
解決策
不足しているプラットフォーム (この場合は arm64-darwin-23) を追加し、Bundler を再度実行します。
$ bundle lock --add-platform arm64-darwin-23
$ bundle install
バンドル プラットフォームとバンドル ロックを使用した他のプラットフォームのサポートについてお読みください。