Find_spec_for_exe ': не удается найти gem bundler ( >= 0.a) (Gem:: GemNotFoundException)

Я использовал sudo bundle install, и это может быть причиной проблемы?

Теперь у меня есть:

  • gem -v 2.6.14
  • ruby -v ruby 2.3.5p376 (2017-09-14, редакция 59905) [x86_64-darwin15]
  • jekyll -v Джекилл 3.6.2
  • bundle -v Bundler версия 1.16.0.pre.3

При попытке запустить bundle exec jekyll serve или просто jekyll serve

я получаю следующую ошибку
/Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:271:in 'find_spec_for_exe': can't find gem bundler (>= 0.a) (Gem::GemNotFoundException)
    from /Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:299:in 'activate_bin_path'
    from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/bundle:23:in '<main>'
    from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in 'eval'
    from /Users/myusername/.rvm/gems/ruby-2.3.5/bin/ruby_executable_hooks:15:in '<MacBooMacBook-MacBook-MacBook-Pro-MacBook-PrMacBook-MacBooMacBMaMacBMaMaMaMaMaMaMaMaMacBMaMaMaMacBMa

Кроме того, при доступе к папке, в которой находится мой блог cd my_path, я получаю следующее сообщение:

ВМ использовала ваш Gemfile для выбора Ruby, все в порядке - Heroku делает то же самое, Вы можете игнорировать эти предупреждения с помощью 'rvm rvmrc warning ignore/Library/WebServer/Documents/blog/Gemfile'. Чтобы игнорировать предупреждение для всех файлов, запустите "rvm rvmrc warning ignore allGemfiles". Неизвестная версия интерпретатора ruby (не знаю, как с ней обращаться): RUBY_VERSION.

Я понятия не имею, как это решить. Я просто хочу создать свой статичный блог и, честно говоря, понятия не имею о Ruby, Gem или Bundle :) Так что я был бы признателен за некоторые идеи!

Ответ 1

Проблема в моем случае заключается в том, что файл Gemfile.lock имел версию BUNDLED_WITH версии 1.16.1 а 1.16.1 gem install bundler версию 2.0.1, поэтому при поиске правильной папки произошла несовпадение версий.

gem install bundler -v 1.16.1 исправил это

Конечно, вы можете также изменить Gemfile.lock BUNDLED_WITH с последней bundler версии и использовать недавнее программное обеспечение, так как Sam3000 предполагает

Ответ 2

gem update --system

обновит rubygems и исправит проблему.

Ответ 3

Обновить:

Согласно @noraj answer и @Niels Kristian comment, следующая команда должна выполнить эту работу.

gem update --system
bundle install

Я написал это на случай, если кто-то попадет в проблему, подобную моей.

gem install bundler показывает, что все устанавливается хорошо.

Fetching: bundler-1.16.0.gem (100%)
Successfully installed bundler-1.16.0
Parsing documentation for bundler-1.16.0
Installing ri documentation for bundler-1.16.0
Done installing documentation for bundler after 7 seconds
1 gem installed

Когда я набрал bundle произошла ошибка:

/Users/nikkov/.rvm/gems/ruby-2.4.0/bin/bundle:23:in 'load': cannot load such file -- /Users/nikkov/.rvm/rubies/ruby-2.4.0/lib/ruby/gems/2.4.0/gems/bundler-1.16.0/exe/bundle (LoadError)
    from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/bundle:23:in '<main>'
    from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in 'eval'
    from /Users/nikkov/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in '<main>'

И в папке /Users/nikkov/.rvm/rubies/ruby-2.4.0/lib/ruby/gems/2.4.0/gems/ не было папки bundler-1.16.0.

Я исправил это с помощью sudo gem install bundler

Ответ 4

Реальный ответ здесь, если вы пытаетесь установить bundler 2.0.1 или 2.0.0 из-за Bundler, требующего RubyGems v3.0.0

Вчера я выпустил Bundler 2.0, который внес ряд серьезных изменений. Одним из таких изменений была настройка Bundler на использование RubyGems v3.0.0. После выпуска релиза стало ясно, что многие из наших пользователей сталкиваются с проблемами с Bundler 2, требующими действительно новой версии RubyGems.

Мы внимательно прислушиваемся к отзывам пользователей и решили уменьшить требование RubyGems до версии 2.5.0 как минимум. Мы выпустили новую версию Bundler, v2.0.1, которая регулирует это требование.

Для получения дополнительной информации см.: https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html.

Ответ 5

Это исправило это:

  1. Удалить Gemfile.lock rm Gemfile.lock
  2. снова запустите bundle install

Ответ 6

Причина в том, что вы используете текущую среду ruby, вы получили другую версию bundler с версией в Gemfile.lock.

  • Безопасный способ, установите пакет с той же версией в Gemfile.lock, это ничего не сломает, если случится что-то невероятное.
  • Трудный путь, просто удалите Gemfile.lock и запустите Gemfile.lock bundle install.

Ответ 7

Если вы изменили рубиновую версию, используемую с rvm use, удалите Gemfile.lock и повторите попытку.

Ответ 8

Откройте Gemfile.lock, который находится в корне папки вашего приложения. Прокрутите до конца файла и увидите используемую версию пакета. Затем убедитесь, что вы установили используемую версию пакета:

gem install bundler -v x.xx.xx

Или - удалите Gemfile.lock и комплект, если у вас установлена более поздняя версия комплекта.

Выбор за вами, мой друг.

Ответ 9

Сегодня у меня была такая же проблема. Я rvm эту проблему, удаляя любую PATH в .bashrc для более старого rvm.

Ответ 10

Моя проблема заключалась в том, что я использовал RVM и активировал неправильную версию Ruby...

Надеюсь, это поможет хотя бы одному человеку

Ответ 11

Ник Ков к сути. запустите gem install bundler.

Ответ 12

Я должен был сделать rake clean --force. Затем gem install rake и так далее.

Ответ 13

Я понизил рубин с 2.5.x до 2.4.x в моем конкретном случае.