修复了安装 Ruby gems 时的 Gem::Requirement::BadRequirementError

问题描述 投票:0回答:1

我是 Ruby 新手,过去在我的 Linux 虚拟机上安装了一些 gem。但是,当我尝试安装任何新的 gem 时,我得到: Gem::Requirement::BadRequirementError

这是我尝试使用此命令安装 google-api-client gem 时的完整错误消息:

gem install -v google-api-client

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 都会执行相同的操作。

ruby rubygems
1个回答
0
投票

当您想要安装特定版本的 gem 时,

-v
选项
gem install
一起使用。例如,像这样:

gem install google-api-client -v 0.53.0

但是您的 CLI 调用缺少版本号,因此您会收到该错误消息。

当您只想安装 gem 的最新可用版本时,请删除

-v
部分并安装 gem,如下所示:

gem install google-api-client
© www.soinside.com 2019 - 2024. All rights reserved.