Rails4 создание нового приложения - Bundler ожидает версию MySQL2 3.1.3?

Я начинаю экспериментировать с Rails 4 для работы, где мы используем гем MySQL2 3.1.0 на сервере.

Локально с Ruby 2.0 я установил MySQL2 3.1.0 Gem, и там все было в порядке (соответствие версии gem на рабочем сервере в основном для соответствия среде производственного сервера).

Когда я создал новое приложение (ruby new r4_test -d mysql), я столкнулся с проблемой. Bundler упал во время процесса создания нового приложения, жалуясь на отсутствие файлов MySQL2 3.1.3. Похоже, что 3.1.3 (выпущенный 3 месяца назад, если я выгляжу правильно) - это самый высокий номер версии MySQL2 Gem. Я запутался в этом, потому что единственная версия MySQL2, установленная в папке Ruby, - это версия 3.1.0. Почему Bundler проигнорировал установленный гем и ожидал более высокую версию, которая не была установлена ​​локально? Я пропустил Rails3, так что я новичок в Bundler. Не похоже, что стоит ожидать версию, которая не является локальной. Иногда возникают ошибки или другие проблемы, из-за которых вам нужно какое-то время оставаться на старой версии гема.?

Спасибо!

1 ответ

Если у вас еще нет Gemfile.lock в каталоге вашего проекта Bundler пытается установить самую последнюю доступную версию, которая соответствует критериям версии в Gemfile, Таким образом, для нового проекта Rails он попытается установить последние зависимости сгенерированных по умолчанию Gemfile, На самом деле он вообще не смотрит на ваши установленные самоцветы, если у вас уже нет Gemfile.lock,

Вы можете использовать --skip-bundle (или же -B) если вы не хотите запускать Rails bundle install при создании нового проекта. Это дает вам возможность настроить Gemfile первый. Вы можете добавить ограничение версии, если хотите быть уверенным, что оно будет использовать уже установленную версию.

Другие вопросы по тегам