Ubuntu 16.04, используя rbenv
Я только начал эту книгу и столкнулся с точно такой же проблемой.Для справки, книга Pragmatic Programmer Agile Web Development с Rails 5.1
Решение:
Откройте Gemfile с помощью редактора и найдите следующую строку:
gem 'rails', '~> 5.1.3'
Измените эту строку следующим образом (в основном удалите '~>'):
gem 'rails', '5.1.3'
Выполните bundle install
, который вернул список ошибок, касающихся зависимостей гемов:
Снимок экрана Bash
Запуск bundle update
, как показывают сообщения об ошибках.Bundler теперь возвращается к Rails 5.1.3 и возвращает все гемы, которые зависят от него («Использование rails 5.1.3 (было 5.1.6)»):
снимок экрана Bash
Пояснение
Bundler утверждает, что «~>» означает «эту версию или выше, но ниже следующей вспомогательной версии (в данном случае 5.2.0»).см. семантическое управление версиями ) ".Таким образом, «~>» позволяет Bundler устанавливать 5.1.6 просто потому, что она является самой высокой из доступных на данный момент.
Когда вы обновляете свой Gemfile до '5.1.3'
, вы говорите Bundler использовать именно эту версию.