Почему «обновление пакета» не обновляет Gemfile для использования Rails 3.0.5? - PullRequest
11 голосов
/ 03 апреля 2011

Я пытался использовать bundle update для проекта Rails 3.0.0, который я создал, ожидая, что все содержимое в Gemfile (а также Gemfile.lock) будет отражать рельсы 3.0.5 ...

Ноон продолжает оставаться 3.0.0 ... даже если я запускаю bundle update rails, он все еще продолжает оставаться 3.0.0

Из любопытства я создал новый проект Rails 3.0.0, а затем запустилобновление пакета на нем ... и он по-прежнему говорит "использование рельсов 3.0.0", почему?А как сделать bundle update обновление до 3.0.5?(кроме очевидного способа изменить Gemfile вручную)

(я даже пытался изменить sqlite3-ruby на sqlite3 в Gemfile, потому что 3.0.5, похоже, вместо этого использует sqlite3. Иrails и sqlite3 являются единственными 2 драгоценными камнями, перечисленными в Gemfile)

Ответы [ 3 ]

15 голосов
/ 03 апреля 2011

У вас уже был ответ: измените версию гема вручную и запустите bundle update rails.

Я подозреваю, что в вашем Gemfile есть gem 'rails', '3.0.0'.Запуск bundle update rails не изменит версию, если у вас указана точная версия.

Вот некоторая информация о различных способах указания версий гемов в вашем Gemfile.

http://gembundler.com/rationale.html

14 голосов
/ 04 апреля 2011

Да, у вас, вероятно, есть

gem 'rails', '3.0.0'

, измените его на

gem 'rails', '~>3.0.0'

Это обновит только младшие версии рельсов (3.0.5 и 3.0.6 ...).Или вы можете изменить его на

gem 'rails', '~>3.0'

, если хотите обновить до rails 3.1, но не 4.0

1 голос
/ 21 марта 2016

Это один из лучших результатов при поиске "bundler wont update" в Google, поэтому я добавляю следующее в качестве другого ответа. Я столкнулся с этой проблемой в одном из моих проектов.

В одном из моих проектов у меня был файл .bundle/config со следующей строкой:

BUNDLE_FROZEN: "1"

Это заставляло bundle update <gemname> не иметь никакого эффекта. Я удалил вышеуказанную строку, и она снова начала обновляться.

...