Уже активированная версия рейка, отличная от того, что требует 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
не исправляет корень проблемы для меня. Я никогда не делал этого в прошлом, и он все еще не работает.
Ответы
Ответ 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.