Почему для моей среды требуется запустить runle exec?
Всякий раз, когда я запускаю команду rake (т.е. rake routes
), я получаю эту ошибку:
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 rake routes
, он работает.
Я хочу иметь возможность просто rake routes
без запуска bundle exec rake routes
.
Я рассмотрел другие вопросы с похожими ошибками и попробовал различные решения (например, запуск bundle update
) безрезультатно.
Кроме того, в моем gemfile
я указал gem 'rake', '0.9.2'
Любые предложения?
Ответы
Ответ 1
Попробуйте выполнить:
gem list
Вы, вероятно, увидите пару версий, установленных для граблей. Кстати, bundle exec
- это правильный способ выполнения вашего кода в контексте приложения на Rails. Таким образом, вы можете использовать псевдоним для ввода меньше.
Ответ 2
Если вы используете rvm. вы можете попробовать следовать
rvm gem list
Ответ 3
Как сказал @lucapette, у вас, вероятно, есть несколько версий рейка. Предполагая, что вы хотите использовать 0.9.2, вы можете удалить версию 0.9.2.2, чтобы избавиться от предупреждения, а затем запустить установку пакета, чтобы убедиться, что у вас есть все правильные версии gem для нужной вам версии (0.9.2 в вашем случае, 0.8.7 в моем примере ниже).
Вот шаги:
$ gem list
*** LOCAL GEMS ***
...
rake (0.9.2.2, 0.8.7)
...
$ gem uninstall rake
Select gem to uninstall:
1. rake-0.8.7
2. rake-0.9.2.2
3. All versions
> 2
You have requested to uninstall the gem:
rake-0.9.2.2
addressable-2.2.6 depends on [rake (>= 0.7.3)]
...
If you remove this gems, one or more dependencies will not be met.
Continue with Uninstall? [Yn] Y
Successfully uninstalled rake-0.9.2.2
INFO: gem "0.9.2.2" is not installed
$ bundle install
Ответ 4
Вы можете увидеть это сообщение, если некоторые из драгоценных камней в вашем gemfile требуют, чтобы старая версия Rake была установлена вами. Возможно, вы обновили грабли. Вы можете часто исправить это, обновив свои драгоценные камни. Run:
bundle update
Это обновит ваш пакет, используя самые последние драгоценные камни в вашем gemfile. Вероятно, это приведет к несовместимости грабли.