Устранение неисправностей рейка 0,9

У меня возникли проблемы с удалением грабежа версии 0.9. Мне удалось запустить gem uninstall rake, и я полагал, что это удалило его. Однако, возвращаясь к списку драгоценных камней, он все еще показал, что он все еще существует.

Запуск gem env:

GEM PATHS:
   /home/sean/.rvm/gems/ruby-1.9.2-p180
   /home/sean/.rvm/gems/[email protected]

Я зашел в каталог @global и вручную удалил его там, но все же он где-то остается. Я вижу это, когда я запускаю gem list. Драйвер 0.9 rake вызывает проблемы для моего приложения Rails 3.0.7.

Я побежал gem list -d rake:

rake (0.9.0, 0.8.7)

Installed at 
(0.9.0): /home/sean/.rvm/gems/[email protected]
(0.8.7): /home/sean/.rvm/gems/ruby-1.9.2-p180

Я ничего не вижу в каталоге gems для [email protected]

Ответы

Ответ 1

Вы должны запустить

rvm use @global && gem uninstall rake -v 0.9.0  
rvm use @ && gem uninstall rake -v 0.9.0

чтобы правильно удалить rake 0.9.0 из rvm

Ответ 2

В терминале введите: gem uninstall rake, затем выберите вариант 0.9.0 при появлении запроса.

Затем измените свой Gemfile в приложении Rails:

gem 'rake', '0.8.7'

Затем в терминальном запуске:

bundle install

Эти шаги должны исправить проблемы, которые у вас есть. При обновлении до рельсов повышайте уровень рейка 3.1.

Ответ 3

Если вы используете rvm, вы получаете rake 0.9, установленный "бесплатно" в глобальном gemset, который делает его трудно (невозможно?) для правильной деинсталляции. gem uninstall rake успешно, но на самом деле не удаляет рейк 0.9. Я должен был сделать это вручную как для REE, так и для 1.9.2.

Я редактировал исполняемый файл rake script (найти с which rake) и добавил:

puts "Gem.bin_path: #{Gem.bin_path('rake', 'rake', version)}

... перед последней строкой. Это печатает (в моей системе):  Gem.bin_path: ~/.rvm/gems/[email protected]/gems/rake-0.9.0/bin/rake

Чтобы удалить 0.9 cd в ~/.rvm/gems/ree-1.8.7-2011.03 и вручную удалите все файлы rake-0.9 (драгоценные камни, спецификации - те, которые считаются, на мой взгляд,).

Ответ 4

Я столкнулся с этой же проблемой (нужен грабли 0.8.7, но получил 0,9 "бесплатно" с rvm). Первоначально gem list -d rake дал следующий результат:

rake (0.9.0, 0.8.7)
  Installed at (0.9.0): ~/.rvm/gems/[email protected]
               (0.8.7): ~/.rvm/gems/[email protected]_gemset

Переход на глобальный gemset с помощью rvm use @global дал мне этот результат:

rake (0.9.0)
  Installed at: ~/.rvm/gems/[email protected]

Итак, я просто сделал gem uninstall rake. Теперь, возвращаясь к моему gemset с помощью rvm use @my_gemset, используется верная версия рейка (0.8.7).

Ответ 5

Если вы используете bundler, вы должны прочитать эту отличную статью Yehuda Katz. Следуя его инструкциям, вам не нужно удалять рейк 0.9.0. Попробуйте выполнить следующую команду:

bundle exec rake --version

Prepending bundle exec будет следить за тем, чтобы загружалась только правильная версия рейка, независимо от других, которые вы установили.

Ответ 6

Вы пытались использовать "очистку драгоценных камней" script?