новичок: сообщение об ошибке при 'rake -T'

Я использую Ruby Enterprise Edition для своего проекта. Когда я проверяю все свои рейк-задачи, запуская команду rake -T , я получаю следующее сообщение об ошибке:

You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Using bundle exec may solve this.

Сообщение об ошибке подразумевает, что я могу использовать bundle exec для решения проблемы, но я не знаю, как это сделать? Итак, как избавиться от этого сообщения об ошибке?

--------------------------------------------------- -----------

Я предпочитаю обновлять Gemfile вместо запуска bundle exec rake -T. Но когда я открываю свой проект Gemfile, я не вижу rake 0.9.2 в своем Gemfile, почему в сообщении об ошибке жалуется, что он у меня есть? Где может быть место, где я определил грабли 0.9.2??


person Mellon    schedule 08.11.2011    source источник


Ответы (2)


Запустите bundle exec rake -T, это гарантирует, что работает версия rake, указанная в вашем Gemfile, а не другая версия.

В качестве альтернативы обновите свой Gemfile.

person harald    schedule 08.11.2011
comment
Я предпочитаю обновлять свой Gemfile, но у меня нет рейка 0.9.2 в моем Gemfile, почему сообщение об ошибке жалуется, что он у меня есть? Где может быть место, где я определил грабли 0.9.2?? - person Mellon; 08.11.2011
comment
Меллон, проверь свой Gemfile.lock. Вероятно, вы обновили рейк после запуска bundle install. Запустите bundle update rake, чтобы обновить Gemfile.lock. - person harald; 08.11.2011
comment
Харальд, Спасибо, теперь это работает. Не могли бы вы также объяснить мне, почему rake определен не в моем Gemfile, а в Gemfile.lock? Разве это не драгоценный камень? - person Mellon; 08.11.2011
comment
Меллон, Gemfile описывает непосредственные зависимости, от которых зависит ваш проект. Gemfile.lock снова записывает актуальные версии этих зависимостей и все их зависимости. Это сделано для того, чтобы позволить bundle install воссоздать вашу точную среду, чтобы вы не столкнулись с неприятными сюрпризами при развертывании своего приложения. - person harald; 08.11.2011

Это связано с тем, что ваш инструмент rake не соответствует версии, указанной в файле Gemfile.

Сначала вам нужно запустить эту команду, чтобы установить rake 0.9.2:

bundle install

Затем вы можете запустить rake 0.9.2 с помощью следующей команды:

bundle exec rake -T

bundle — это хороший инструмент, который поможет вам управлять зависимостями вашего приложения. Дополнительную информацию можно получить здесь.

person Santa Zhang    schedule 08.11.2011