версия пакета существует, но RubyGems утверждает обратное

#rubygems #bundler

#рубигемы #упаковщик

Вопрос:

Когда я бегу rails generate migration , я получаю:

/Users/bob/.rbenv/versions/2.7.4/lib/ruby/2.7.0/rubygems.rb:277:in 'find_spec_for_exe': Could not find 'bundler' (2.2.21) required by your /Users/bob/path/to/my/project/Gemfile.lock. (Gem::GemNotFoundException)

…за этим следует:

 To update to the latest version installed on your system, run `bundle update --bundler`. To install the missing version, run `gem install bundler:2.2.21`  

Однако bundler явно ли там:

 $ gem list bundler  *** LOCAL GEMS ***  bundler (2.2.21)  $ ruby -v ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-darwin19]  $ find ~/.rbenv -name "*bundler*" | grep 2.7.4 | grep gemspec  /Users/bob/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0/specifications/bundler-2.2.21.gemspec /Users/bob/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0/gems/bundler-2.2.21/bundler.gemspec  

Я проследил его до строки 267 в rubygems.rb:

 specs = dep.matching_specs(true)  

(Он возвращает пустой массив, я полагаю, чтобы предположить, что он не может найти соответствующую спецификацию.)

Примечание: Я следовал приведенным выше инструкциям/предложениям (о запуске bundle update --bundler и gem install bundler:2.2.21 ) безрезультатно.

Ответ №1:

В итоге это сработало на меня:

 rbenv uninstall 2.7.4  rbenv install 2.7.4  bundle  git restore Gemfile.lock # there were some insignificant rearrangments