Bundler не смог найти совместимые версии для gem "bundler": - PullRequest
18 голосов
/ 24 марта 2012

Совершенно новый человек в Ruby и Rails здесь ... Пробовал несколько уроков в прошлом, но это все. Я пытаюсь следовать книге «Учебник по Ruby on Rails 3» и наткнулся на контрольно-пропускной пункт, к которому я не смог найти никакой помощи после поиска здесь и в Google ..

На самом деле я еще ничего не сделал; только:

rails new first_app

затем изменил Gemfile sqlite3 на

gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'

Когда я запускаю 'bundle install', я получаю следующее:

Fetching gem metadata from http://rubygems.org/.........
Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    rails (= 3.0.1) ruby depends on
      bundler (~> 1.0.0) ruby

  Current Bundler version:
    bundler (1.1.3)

This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?

Я пытался удалить пакет через

gem uninstall bundler -v 1.1.3

и затем установка bundler v1.0.0 через

gem install bundler -v 1.0.0

но, похоже, мне достанется компоновщик 1.1.2 ..

Мне просто кажется, что я зашел в тупик и не могу найти больше информации о том, как решить эту проблему.

Любая помощь будет высоко оценена и вознаграждена обильным количеством бекона ...

ОБНОВЛЕНИЕ ОБНОВЛЕНИЕ ОБНОВЛЕНИЕ

Не удалось удалить bundler v 1.1.2 для удаления. Я наконец смог удалить все драгоценные камни, выполнив:

sudo gem list | cut -d" " -f1 > gem_list.txt  
cat gem_list.txt | xargs sudo gem uninstall -aIx  
cat gem_list.txt | xargs sudo gem install

А затем переустановка ... Это позволило мне затем выполнить 'установку комплекта' и начать работу. Спасибо всем за помощь!

Ответы [ 6 ]

10 голосов
/ 10 июля 2013

это потому, что гемы также установлены в глобальном наборе гемов, и вы можете удалить его, используя:

rvm @global do gem uninstall bundler

, но вы также можете использовать другую версию компоновщика, используя:

gem install bundler -v '~>1.0.0'
bundle _1.0.0_ install

замените 1.0.0 на версию, которая была установлена ​​(если есть)

9 голосов
/ 24 марта 2012

Сначала проверьте свои версии, чтобы убедиться, что они все текущие:

$ ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]

$ rails -v          
Rails 3.2.2

$ gem list bundler
*** LOCAL GEMS ***
bundler (1.1.3)

Если вам нужно обновить ruby, вы можете загрузить его с https://www.ruby -lang.org или используйте такие инструменты, как ruby-build.Если у вас есть какая-либо версия Ruby 1.9.3, то сейчас это нормально.

Чтобы обновить все ваши драгоценные камни:

gem update --system
gem update

Драгоценный камень может устанавливать драгоценные камни в нескольких разных местах, и это может мешатьдруг с другом.Существуют системные гемы (обычно устанавливаемые пользователем root или с помощью sudo) и ваши личные гемы пользователя.Мой любимый способ управлять этим с помощью простого инструмента под названием rbenv.Связанный инструмент - rvm.Либо в порядке.

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

- gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
+ gem 'sqlite3-ruby', :require => 'sqlite3'

Bundler отсортирует все правильно.В конце концов вы захотите указать номера версий, если вы координируете свои действия с другими разработчиками или создаете производственные системы.

Не стесняйтесь задавать вопросы здесь, и я добавлю к этому ответу.

9 голосов
/ 24 марта 2012

Возможно, на вашем компьютере установлен пакет 1.1.2 И 1.1.3 (и, возможно, больше версий)

использование

gem list bundler

чтобы проверить, какую версию (ы) комплекта вы установили.

Затем удалите ненужные

gem uninstall bundler -v VERSION_NUMBER
6 голосов
/ 24 марта 2012

Вы можете использовать последнюю версию Rails 3.0 (3.0.12). Он поддерживает новейший пакет и принципиально не отличается от 3.0.1

0 голосов
/ 16 апреля 2019

Иногда для устранения проблемы, упомянутой в заголовке этого вопроса, достаточно удалить Gemfile.lock и запустить bundle update.Надеюсь, это кому-нибудь пригодится.

0 голосов
/ 31 января 2014

Bundler - это зависимая жемчужина рельсов, из-за которой его можно увидеть только в gemfile.lock вместо gemfile.

Для конкретной версии рельсов совместим только ряд драгоценных камней. Я также получил эту ошибку, и я попытался удалить ту версию Gem, которая мне не нужна. Я также попытался принудительно установить, используя bundle_x.x.x_install, но когда что-то не получалось, я явно упомянул гем, указав версию, попадающую в диапазон, требуемый для используемой мной версии rails. Может быть, это не правильный путь, но у меня все получилось.

...