Помилка "Не вдалося знайти постачальника"


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)

Я новачок у Рубі, може хтось скаже мені, що це спричинило б? Встановлено граблі 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 - це зробив і для мене.
Дон Кот

10
Зауважте, що дорогоцінний камінь "пакет" - це просто дорогоцінний камінь, який оголошує "bundler" як залежність, що по суті фіксує ваш помилку. github.com/will/bundle/blob/…
морське місце

13

У мене була така ж проблема. Це працювало для мене:

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

  2. використовувати пачку без судо



8

Команда є bundle update(у "розшаруванні" немає "r").

Щоб перевірити, чи встановлений пакувач, зробіть: gem list bundlerабо навіть which bundleі команда перелічить або версію пакета, або шлях до нього. Якщо нічого не відображається, встановіть пакет, ввівши gem install bundler.


7

У мене була така ж проблема .. з моїм баш-профілем сталося щось, що не було правильно встановити RVM.

Переконайтеся, що ваш профіль bash має такий рядок:

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

Потім я запустив "source ~ / .bash_profile" і перезавантажив усе, що було в моєму баш-профілі.

Це, здавалося, вирішило це для мене.


Дякую за це Хоча я знав, як написати "bundle" vs "bundler", я зовсім забув, що перевстановив zsh і під час цього випадково вирвав цю лінію від мого .zshrc. Я витягнув моє волосся над цим на деякий час :)
rmurphey

Ця відповідь стара, але для мене це рішення!
jonnyjava.net

Переконайтеся, що це ОСТАННІЙ рядок у вашому файлі профілю
rmcsharry


4

Можливо, вам доведеться спочатку зробити щось на кшталт "rvm use 1.9.2", щоб правильно використовувати рубін та дорогоцінний набір. Ви можете перевірити, який рубін ви використовуєте, виконавши "який рубін"


2

Я отримав це після переходу на ruby ​​2.1.0. Моє PATHвстановлено в моєму сценарії входу для включення .gem/ruby/2.0.0/bin. Оновлення номера версії виправлено.


2

Система може працювати без корінь. Спробуйте встановити програмне забезпечення 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 список наборів

  1. Використовуйте певний дорогоцінний набір.

rvm використовувати "my_get_set"

  1. Встановіть постачальник під цим gemset.

встановити gem bundler

Потім спробуйте ще раз із завданням на розгортання.


0

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

І тоді я зрозумів, що Ruby, який я встановив за допомогою rvm, не був встановлений за замовчуванням. Біг

rvm alias create default <rvm_registered_ruby>

Виправлено це.


0

На всякий випадок у мене була подібна помилка з bundler 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.