Ошибка «Не удалось найти сборщик»


107

Когда я пытаюсь это сделать, bundler updateя получаю эту ошибку:

.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in
`to_specs': Could not find bundler (>= 0) amongst
[rake-0.8.7, rake-0.8.7, rubygems-update-1.8.4] (Gem::LoadError)

Я новичок в Ruby, может кто-нибудь сказать мне, что может вызвать это? Установлен рейк 0.8.7.


1
0 голос против Это говорит о том, что у вас не установлен пакет. Если вы запустите «список драгоценных камней b», вы увидите сборщик?
Джейк Демпси

Ответы:


214

Убедитесь, что вы вводите «пакетное» обновление, если у вас установлен пакетный гем.

bundle update

Если у вас не установлен пакет, сделайте gem install bundler.


если вы создаете новое приложение - рельсы новые, а вы получите эту ошибку?
AMIC MING

2
Сделайте gem list bundlerи посмотрите, появится ли он. Если это не так, вам необходимо установить его, как указано в моем ответе.
ardavis

10
Это произошло у меня после установки новой версии ruby ​​с помощью rvm. Затем мне пришлось gem install bundlerснова бежать
NRR

61

У меня была эта проблема, потом я сделал:

gem install bundle

обратите внимание, что "пакет", а не "сборщик" решил мою проблему.

затем в папке вашего проекта выполните:

bundle install

а затем вы можете запустить свой проект, используя:

script/rails server

gem install bundle - это тоже помогло мне.
Don Cote

10
Обратите внимание, что гем "bundle" - это просто гем, который объявляет "bundler" как зависимость, что, по сути, исправляет вашу опечатку. github.com/will/bundle/blob/…
sealocal 05

13

У меня такая же проблема. Это сработало для меня:

  1. запустите rvm / script / rvm, а также добавьте его в свой .profile или .bash_profile, как показано в https://rvm.io/rvm/install/

  2. использовать пакет без sudo



8

Команда есть bundle update(в "связке" нет "r").

Чтобы проверить, установлен ли сборщик, выполните: gem list bundlerили даже, which bundleи команда отобразит либо версию сборщика, либо путь к нему. Если ничего не отображается, установите пакет, набрав gem install bundler.


7

У меня была та же проблема ... что-то случилось с моим профилем bash, из-за которого не удалось правильно настроить RVM.

Убедитесь, что в вашем профиле bash есть следующая строка:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

Затем я запустил "source ~ / .bash_profile" и перезагрузил все, что было в моем профиле bash.

Похоже, это помогло мне.


Спасибо за это. Хотя я знал, как писать «связка» против «связки», я совершенно забыл, что переустановил zsh и в процессе случайно удалил эту строку из моего .zshrc.
Какое-

Это старый ответ, но для меня это решение!
jonnyjava.net

Убедитесь, что это ПОСЛЕДНЯЯ строка в вашем профиле
rmcsharry 08


4

Возможно, вам сначала придется сделать что-то вроде «rvm use 1.9.2», чтобы использовать правильный ruby ​​и gemset. Вы можете проверить, какой рубин вы используете, выбрав «какой рубин»


2

Получил после обновления до ruby ​​2.1.0. My PATHбыл установлен в моем сценарии входа в систему для включения .gem/ruby/2.0.0/bin. Обновление номера версии исправило это.


2

Система может работать «без рут». Попробуйте установить для переменной boot-args nvram прошивки значение "rootless = 0". Попробуйте запустить набор команд:

sudo nvram boot-args="rootless=0"; 
sudo reboot

После перезагрузки запустите:

sudo gem install bundler

2

Если вы используете rbenvбег, это rbenv rehashможно решить после того, как вы установили bundler, но проблема все еще возникает.



1

Для тех, кто сталкивается с этой проблемой с Capistrano: capistrano не может найти bundler. Причина может заключаться в том, что вы установили бандлер в какое-то другое место, gemsetкуда Capistrano даже не смотрит.

  1. Перечислите свои драгоценности.

список rvm gemset

  1. Используйте определенный набор драгоценных камней.

rvm используйте my_get_set

  1. Установите бандлер под этот гемсет.

сборщик установки gem

Затем повторите попытку с задачей развертывания.


0

В моем случае я считаю, что у меня в системе остался старый Ruby, не зарегистрированный на rvm, и даже если переменные пути и список драгоценных камней в порядке, он все равно будет использовать старый Ruby во время развертывания с Capistrano

А потом я понял, что Ruby, который я установил с rvm, не был установлен по умолчанию. Бег

rvm alias create default <rvm_registered_ruby>

Починил это.


0

На всякий случай у меня была аналогичная ошибка с бандлером 2.1.2 и я решил ее с помощью:

sudo gem install bundler -v 1.17.3

Если у вас установлено несколько версий пакета, то вы можете запустить определенную версию пакета следующим образом: bundle _1.17.3_ exec rspec

Хотя кажется, что более поздние версии сборщика содержат довольно много ошибок (были проблемы в 3 разных проектах на 2 операционных системах), наличие одного старого сборщика может работать лучше всего, по крайней мере, это то, что у меня есть на моих Ubuntu и MacOS

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.