gem アップデート – システム障害
概要
gem update –system の実行が次のエラーで失敗します。
#22 71.91 ERROR: Error installing rubygems-update:
#22 71.91 There are no versions of rubygems-update (= 3.5.2) compatible with your Ruby & RubyGems
#22 71.91 rubygems-update requires Ruby version >= 3.0.0. The current ruby version is 2.7.5.203.
#22 71.91 ERROR: While executing gem ... (NoMethodError)
#22 71.91 undefined method `version' for nil:NilClass
#22 71.93 Updating rubygems-update
私の Ruby のバージョンは次のとおりです。
rbenv local:
2.7.5
Ruby 2.7.5 と互換性のあるバージョンの Rubygems-update を見つけてインストールする必要がありますか?
解決策
Rubygems-update の RubyGems バージョン リストに移動し、Ruby バージョン基準 (<= 2.7.5) に一致するバージョンが見つかるまで各バージョンをクリックするか、プログラマーになって楽しい方法でそれを実行します。
require 'open-uri'
require 'json'
GEM_TO_TEST = "rubygems-update"
RUBY_VERSION_TO_MATCH = "2.7.5"
API_URL = "https://rubygems.org/api/v1/versions/#{GEM_TO_TEST}.json"
# Load list of all available versions of GEM_TO_TEST
gem_versions = JSON.parse(open(API_URL).read)
# Process list to find matching Ruby version
matching_gem = gem_versions.find { |gem|
Gem::Dependency.new('', gem['ruby_version']).
match?('', RUBY_VERSION_TO_MATCH)
}
puts "Latest version of #{GEM_TO_TEST} " +
"compatible with Ruby #{RUBY_VERSION_TO_MATCH} " +
"is #{matching_gem['number']}."
これを実行すると、次の結果が得られます。
Latest version of rubygems-update compatible with Ruby 2.7.5 is 3.4.22.
したがって、問題の解決策は(おそらく)次のとおりです。
gem update --system 3.4.22