Bundler не смог найти совместимые версии для gem "bundler":
Завершите нового человека для Ruby и Rails здесь... Пробовали некоторые уроки в прошлом, но об этом. Я пытаюсь следовать книге "Ruby on Rails 3 Tutorial" и попал в блокпост, который мне не удалось найти после поиска здесь и в 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..
Я просто чувствую, что попал в тупик и больше не могу найти информацию о том, как решить эту проблему.
Любая помощь была бы высоко оценена и вознаграждена обильным количеством бекона...
UPDATE UPDATE UPDATE
Я не смог установить пакет 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
И затем переустановить... Это позволило мне выполнить "установку пакета" и выйти на путь. Спасибо всем за вашу помощь!
Ответы
Ответ 1
Сначала проверьте ваши версии, чтобы убедиться, что они все текущие:
$ 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 все уладит правильно. В конце концов вы захотите указать номера версий, если вы координируете работу с другими разработчиками или создаете производственные системы.
Не стесняйтесь задавать вопросы здесь, и я добавлю к этому ответу.
Ответ 2
это потому, что камни также установлены в глобальном gemset, и вы можете удалить его, используя:
rvm @global do gem uninstall bundler
но вы также можете использовать другую версию bundler, используя:
gem install bundler -v '~>1.0.0'
bundle _1.0.0_ install
заменить 1.0.0 на версию, которая была установлена (если другая)
Ответ 3
Возможно, на вашем компьютере (и, возможно, в других версиях) установлен пакет 1.1.2 и 1.1.3
использование
gem list bundler
чтобы проверить, какая версия комплекта поставки вы установили.
Затем удалите те, которые вы не хотите с помощью
gem uninstall bundler -v VERSION_NUMBER
Ответ 4
Вы можете использовать последнюю версию Rails 3.0 (3.0.12). Он поддерживает последний комплектщик и не принципиально отличается от 3.0.1.
Ответ 5
Иногда, чтобы решить проблему, упомянутую в заголовке этого вопроса, достаточно удалить Gemfile.lock и запустить bundle update
. Я надеюсь, что это будет полезно для кого-то.
Ответ 6
У меня была эта проблема, и источником была спецификация версии для bundler
в файле .gemspec
:
spec.add_development_dependency "bundler", "~> 1.16"
Удаление номера версии решило проблему:
spec.add_development_dependency "bundler"
Ответ 7
Bundler - зависимый жемчуг рельсов, из-за которого вы можете видеть его только в gemfile.lock
вместо gemfile
.
Для конкретной версии рельсов совместим только ряд драгоценных камней. Я также получил эту ошибку, и я попробовал удалить эту версию грома, которая мне не нужна. Я также попытался установить сильное использование bundle_x.x.x_install
, но когда все не сработало, я прямо упомянул камень, определяющий версию, попадающую в диапазон, необходимый для версии rails, которую я использую. Может быть, это не правильный путь, но так все работает для меня.