Ruby gem のインストール中の Gem::Requirement::BadRequirementError を修正
概要
私は Ruby を初めて使用しますが、過去に Linux 仮想マシンにいくつかの gem をインストールしました。ただし、新しい gem をインストールしようとすると、次のメッセージが表示されます: Gem::Requirement::BadRequirementError
このコマンドで google-api-client gem をインストールしようとしたときのエラー メッセージ全体は次のとおりです。
ERROR: While executing gem ... (Gem::Requirement::BadRequirementError)
Illformed requirement ["google-api-client"]
raise BadRequirementError, "Illformed requirement [#{obj.inspect}]"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/requirement.rb:106:in `parse'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/requirement.rb:138:in `block in initialize'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/requirement.rb:138:in `map!'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/requirement.rb:138:in `initialize'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/version_option.rb:55:in `new'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/version_option.rb:55:in `block in add_version_option'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/optparse/lib/optparse.rb:583:in `conv_arg'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/optparse/lib/optparse.rb:738:in `parse'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/optparse/lib/optparse.rb:1686:in `block in parse_in_order'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/optparse/lib/optparse.rb:1636:in `catch'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/optparse/lib/optparse.rb:1636:in `parse_in_order'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/optparse/lib/optparse.rb:1630:in `order!'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/optparse/lib/optparse.rb:1739:in `permute!'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/optparse/lib/optparse.rb:1764:in `parse!'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/command.rb:448:in `handle_options'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/command.rb:313:in `invoke_with_build_args'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:252:in `invoke_command'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:192:in `process_args'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/command_manager.rb:150:in `run'
/home/blainefreestone/.rbenv/versions/3.2.2/lib/ruby/3.2.0/rubygems/gem_runner.rb:51:in `run'
/home/blainefreestone/.rbenv/versions/3.2.2/bin/gem:10:in `<main>'
この質問を調査しましたが、すべての答えは特定の gem の問題に関係しています。これは、インストールしようとするすべての gem に対して同じことを行います。
解決策
-v オプションは、gem の特定のバージョンをインストールする場合に gem install で使用されます。たとえば、次のようになります。
gem install google-api-client -v 0.53.0
しかし、CLI 呼び出しではバージョン番号が欠落しているため、そのエラー メッセージが表示されます。
gem の利用可能な最新バージョンをインストールしたいだけの場合は、次のように -v 部分を削除して gem をインストールします。
gem install google-api-client