Подтвердить что ты не робот

Уже активированная версия рейка, отличная от того, что требует Gemfile, предотвращает команды рейка

Вот моя ошибка:

rake aborted!
Gem::LoadError: You have already activated rake 10.3.1, but your Gemfile requires rake 10.2.2. Prepending `bundle exec` to your command may solve this.
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:34:in `block in setup'
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/runtime.rb:19:in `setup'
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler.rb:119:in `setup'
/Users/AaronWilliamson/.gem/ruby/2.1.0/gems/bundler-1.5.3/lib/bundler/setup.rb:7:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/boot.rb:4:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/application.rb:1:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/boot.rb:4:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/config/application.rb:1:in `<top (required)>'
/Users/AaronWilliamson/Desktop/Ripelist-Classifieds/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

Я не могу запускать какие-либо рейк-задачи, и это, по-видимому, является корнем всех моих других проблем. Это было не так, как пару дней назад, когда я запускал команды рейка. Может ли кто-нибудь объяснить, что происходит здесь и как вернуть мое приложение обратно? Я ударил стену. Кроме того, bundle exec не исправляет корень проблемы для меня. Я никогда не делал этого в прошлом, и он все еще не работает.

4b9b3361

Ответ 1

ИЗМЕНИТЬ 2: Вы должны посмотреть bundle update и немного изменить свой рабочий процесс. Подробнее см. этот вопрос.


Оригинальный ответ

Это простая проблема, которая возникает, когда ваш gemset имеет версию рейка, которая новее, чем номер версии, о которой упоминается Gemfile.lock.

Как указано в сообщении об ошибке, вы можете использовать bundle exec, чтобы заставить все работать.

Мое решение в таких случаях - просто удалить Gemfile.lock, если я не слишком беспокоюсь о других версиях gem и их бесконечных зависимостях. В противном случае вы можете попробовать просто удалить одну строку в Gemfile.lock, которая говорит о версии рейка. запустите bundle install, и мир снова должен стать счастливым местом. (отредактируйте 2: Запустите bundle update --source вместо этого. Не делайте этого.)

PS: Попробуйте использовать gemsets и организуйте свои драгоценные камни с помощью rvm для разных проектов.

Edit

Я предпочитаю использовать rbenv для управления установками, а все драгоценные камни для проекта находятся в vendor/bundle с использованием параметра bundle install --path. Позже укажите каждую команду gem с помощью bundle exec.

Следовательно, rails s становится bundle exec rails s. Немного больше набрав, на мой взгляд, лучше, если это означает, что все останется чистым, а конфликтов, подобных этому, не произойдет.

Ответ 2

Вы можете использовать rubygems-bundler, чтобы решить эту проблему. Выполните следующие команды:

$ gem install rubygems-bundler

$ gem regenerate_binstubs

Затем повторите попытку рейка.

Ответ 3

Простым решением, которое сработало для меня, является просто запустить bundle update rake.

Ответ 4

У меня была аналогичная проблема, и я скептически относился к удалению строки из моего Gemfile.lock, она казалась взломанной, и неудобство prepend bundle exec для каждой команды rake также не было вариантом. Я исправил это, сначала перейдя в мой Gemfile.lock, чтобы узнать, какая версия rake была (в моем случае это было 11.1.2). Моя мысль заключалась в том, чтобы удалить rake и установить эту версию. Запуск gem uninstall rake дал этот результат:

Выберите камень для удаления:

  • Грабли-10.5.0
  • Грабли-11.1.1
  • Грабли-11.1.2
  • Грабли-11.2.2
  • Грабли-11.3.0
  • Все версии

Я удалил как rake-11.2.2, так и rake-11.3.0. Это исправило мою проблему

Ответ 5

Используйте это:

gem install rake -v "version-you-want"

Ответ 6

В соответствии с этим решением (которое сработало для меня): fooobar.com/questions/263171/...

Вы можете решить эту проблему, используя rubygems-bundler

Введите эти команды в свой терминал:

$ gem install rubygems-bundler
$ gem regenerate_binstubs

Теперь он должен работать

Ответ 7

Введите эту команду:

bundle update rake

Ответ 8

Я попробовал другой способ, который удаляет Gemfile.lock, затем запустите bundle install. После этого я запустил rake db:migrate. И все работает нормально.

Хотя я не думаю, что удалять Gemfile.lock - это плохая практика, но может быть; кто знает.

Ответ 9

Перейдите в Gemfile.lock, найдите файл рейка и обновите там версию.

Я получил эту ошибку:

Gem:: LoadError: вы уже активировали rake 11.2.2, но ваш Gemfile требует рейка 11.1.2. Превращение bundle exec в вашу команду может решить это.

Что я сделал, это изменить версию рейка в Gemfile.lock с: rake (11.1.2) до rake (11.2.2).

После этого все сработало.

Ответ 10

Как уже упоминалось в предыдущих ответах, это простая проблема, которая возникает, когда ваш gemset имеет версию рейка, которая новее, чем номер версии, о которой упоминается Gemfile.lock.

Самый простой способ отладить это - запустить bundle update.

Другими способами может быть удаление Gemfile.lock и запуск bundle install или просто удаление строки в Gemfile.lock, которая соответствует версии рейка, и попробуйте bundle install. Но иногда это может привести к повреждению Gemfile. Я бы предпочел первый метод, потому что он самый безопасный и самый простой.

Ответ 11

У меня была такая же ошибка:

Вы уже активировали rake 12.0.0, но ваш Gemfile требует рейка 11.3.0. Предоплата "bundle exec" для вашей команды может решить эту проблему.

Я решил это, запустив bundle update

это обновило версию рейка до моей активированной версии рейка, и все сработало. Я надеюсь, что это сработает для вас!

Ответ 12

Я встречаю подобную проблему. Мое решение - это изменение строки рейк-версии "gem" rake "," ~ > 10.3 "в файле Gemfile, удаления Gemfile.lock и запуска установки" bundler install ", новый Gemfile.lock покажет новую версию 10.3.1. Тогда все будет хорошо.

Ответ 13

у меня тоже работает bundle update rake

Моя ошибка была Gem::LoadError: You have already activated rake 12.3.1, but your Gemfile requires rake 12.3.0. Prepending Gem::LoadError: You have already activated rake 12.3.1, but your Gemfile requires rake 12.3.0. Prepending to your command may solve this. Gem::LoadError: You have already activated rake 12.3.1, but your Gemfile requires rake 12.3.0. Prepending bundle exec to your command may solve this.