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
Это исправило это:
- Удалить Gemfile.lock
rm Gemfile.lock
- снова запустите
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 в моем конкретном случае.