Почему для моей среды требуется запустить 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. Вероятно, это приведет к несовместимости грабли.