не удается найти сборщик гемов (> = 0.a) с исполняемым комплектом (Gem :: GemNotFoundException) во время установки комплекта с гемом - PullRequest
0 голосов
/ 08 января 2019

Я выполняю следующий скрипт:

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)

Ответы [ 7 ]

0 голосов
/ 06 августа 2019

Я только что столкнулся с той же ошибкой сегодня. Версия пакета, которую я установил в своей системе ранее, была: 1.16.6

Следуйте инструкциям в официальных документах для комплектов на Как перейти на Bundler 2 , и два следующих шага сделали свое дело:

  1. gem install bundler (Помогает получить последнюю версию пакета, которая на сегодняшний день составляет 2.0.2)
  2. bundle update --bundler
0 голосов
/ 07 августа 2019

Я столкнулся с этой же проблемой. Проблема вызвана тем, что RubyGems не может найти исполняемый пакет для гема компоновщика в системе

Чтобы это исправить, сначала запустите

gem install bundler

если у вас не установлен пакетный локально, запустите

gem update --system

Вот и все

Надеюсь, это поможет

0 голосов
/ 04 мая 2019

Я даже не мог bundle -v. С этим разобрались:

gem update --system

Получил информацию отсюда (похожая проблема): find_spec_for_exe ': не может найти сборщик гемов (> = 0.a) (Gem :: GemNotFoundException)

Возможно, какое-то несовпадение версий между ruby ​​+ gem + bundler

0 голосов
/ 09 марта 2019
gem install bundler -v '< 2.0' 
0 голосов
/ 08 января 2019

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

0 голосов
/ 08 января 2019

В 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 и теперь используйте упаковщик 2.x везде, или
  • установите версию 1.x bundler с gem install bundler -v '< 2.0', чтобы использовать соответствующую версию, указанную вашим Gemfile.lock.

Более подробную информацию об этом можно найти в блоге Bundler .

0 голосов
/ 08 января 2019

В соответствии с описанием, упомянутым в посте, перед запуском ниже упомянутой команды:

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

...