не удается найти сборщик гемов (> = 0.a) с исполняемым комплектом (Gem :: GemNotFoundException) во время установки комплекта с гемом
Я выполняю следующий скрипт:
gem install rdoc --no-document
gem install bundle
bundle
выход:
+ gem install rdoc --no-document
Successfully installed rdoc-6.1.1
1 gem installed
+ gem install bundle
Successfully installed bundle-0.0.1
Parsing documentation for bundle-0.0.1
Done installing documentation for bundle after 2 seconds
1 gem installed
1 gem installed
+ bundle install
/usr/lib/ruby/2.5.0/rubygems.rb:289:in 'find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
from /usr/lib/ruby/2.5.0/rubygems.rb:308:in 'activate_bin_path'
from /srv/myuser/.gem/ruby/2.5.0/bin/bundle:23:in '<main>'
Я добавил /srv/myuser/.gem/ruby/2.5.0/bin
к своему пути, чтобы я мог установить гемы.
gem env
показывает
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.7
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.5.0
- USER INSTALLATION DIRECTORY: /srv/myuser/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- SPEC CACHE DIRECTORY: /srv/myuser/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/lib/ruby/gems/2.5.0
- /srv/myuser/.gem/ruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--user-install"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/sbin
- /usr/local/bin
- /usr/bin
gem list
показывает установленные драгоценные камни. Я также могу найти связку, когда я выполняю:
ls -ltrah /srv/myuser/.gem/ruby/2.5.0/bin
Я также пытался установить пакет, но это также не помогло. Что я делаю неправильно?
gem which bundle
ничего не показывает. gem spec bundle
показывает это.
Обновление: я пытался установить bundler перед запуском bundle, но та же проблема появляется, пока:
показывает gem list bundle
bundle (0.0.1)
bundler (2.0.1)
Ответы
Ответ 1
Согласно описанию, упомянутому в посте, перед запуском ниже упомянутой команды:
bundle install
в скрипте вам нужно выполнить следующую команду:
gem install bundler
Итак, последовательность команд для работы будет:
gem install bundler
bundle install
Обновите команду bundler, если if не работает:
gem install bundler -v '1.17.3'
Причина перерыва в функционале в bundler 2.0 приведена в нижеприведенной ссылке:
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
Ответ 2
В Bundler версии 2 появилась новая функция для автоматического использования версии Bundler, указанной в Gemfile.lock
вашего проекта. Таким образом, если у вас есть существующий Gemfile.lock
с такой строкой внизу
BUNDLED WITH
1.17.3
Bundler попытается запустить версию Bundler <2.0. Так как у вас только что установлен Bundler 2.0.1 (и Rubygems> = 2.7.0), это не помогает с этим довольно бесполезным сообщением об ошибке.
Чтобы это исправить, вы могли бы
- удалите строки из вашего
Gemfile.lock
и Gemfile.lock
используйте bundler 2.x везде, или - установите версию bundler 1.x с помощью
gem install bundler -v '< 2.0'
чтобы использовать соответствующую версию, указанную в вашем Gemfile.lock
.
Более подробную информацию об этом можно найти в блоге Bundler.
Ответ 3
Я даже не мог сделать bundle -v
. Это разобрались:
gem update --system
Получил информацию отсюда (похожая проблема): find_spec_for_exe ': не могу найти упаковщик гемов (> = 0.a) (Gem :: GemNotFoundException)
Возможно, какое-то несовпадение версий между ruby + gem + bundler
Ответ 4
gem install bundler -v '< 2.0'
Ответ 5
У меня недавно была такая же проблема. В моем случае я установил версию на упаковщик, отличную от той, которая зарегистрирована в Gemfile.lock. пожалуйста, проверьте
Ответ 6
Я переустанавливаю Bunndler 1.17.3, используя
пакет установки gem -v '1.17.3'
все идет хорошо, но когда я написал
связка -v
это все еще версия 2.0.2, и я принимаю ту же ошибку, когда я хочу сделать свою работу.
Ответ 7
Я только что столкнулся с той же ошибкой сегодня. Версия пакета, которую я установил в своей системе ранее, была: 1.16.6
Следуйте инструкциям в официальных документах по комплектации на Как обновить до Bundler 2, и два следующих шага сделали свое дело:
gem install bundler
(Помогает получить последнюю версию пакета, которая на сегодняшний день является 2.0.2)
bundle update --bundler
Ответ 8
Я столкнулся с этой же проблемой. Проблема вызвана тем, что RubyGems не может найти исполняемый пакет для гема пакета в системе
Чтобы это исправить, сначала запустите
gem install bundler
если у вас не установлен пакетный локально, запустите
gem update --system
Это все
надеюсь, это поможет