После установки rbenv и изменения версии Ruby Rake больше не запускается - PullRequest
2 голосов
/ 14 марта 2012

После установки Rbenv и Ruby 1.9.2 и 1.8.7 и установки текущего проекта на использование 1.9.2 (ранее использовался 1.8.7), Rake больше не будет работать.Запуск rake routes выдает сообщения:

Could not find rake-0.8.7 in any of the sources
Run `bundle install` to install missing gems.

После запуска bundle install.

Попытка bundle exec rake routes (метод, использованный до установки Rbenv), выдает следующие ошибки:

NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/shared_helpers.rb:3.
Invalid gemspec in [/Users/jackrg/Documents/Novelty-Stats/vendor/local/ruby/1.8/specifications/jquery-rails-1.0.19.gemspec]: invalid date format in specification: "2011-11-26 00:00:00.000000000Z"
Invalid gemspec in [/Users/jackrg/Documents/Novelty-Stats/vendor/local/ruby/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z"
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/source.rb:161.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /Library/Ruby/Gems/1.8/gems/bundler-1.0.9/lib/bundler/source.rb:161.
Could not find rake-0.8.7 in any of the sources

Обратите внимание, что само приложение работает без проблем в процессе разработки (rails c, rails s и т. Д.).

Также обратите внимание, что gem list перечисляет рейк (0,8.7) в качестве локального гема.

Если я изменю гемфайл на запрос рейка версии 0.9.2, а затем обновлю пакет (пакет обновления рейка), я получаю те же ошибки, за исключением того, что они теперь относятся к версии 0.9.2 рейка вместо 0.8.7.

Ответы [ 4 ]

5 голосов
/ 15 марта 2012

После установки новой версии ruby ​​вам необходимо запустить rbenv rehash. Затем запустите gem install rake, затем выполните rbenv rehash во второй раз, когда rake установит двоичные файлы.

1 голос
/ 10 января 2014

У меня была такая же проблема. Причиной моей проблемы было то, что Rake был также найден в /usr/bin/local/ в дополнение к каталогу shims в rbenv. Чтобы проверить, в этом ли проблема, сначала удалите rake gem uninstall rake, затем запустите which rake. Если вы получите путь, отличный от /Users/username/.rbenv/shims/rake, просто удалите этот двоичный файл, используя sudo rm /path/to/file.

Обратите внимание, что по крайней мере в моем случае which gem использовал исполняемый файл shimed, которым управлял rbenv, а rake - нет. Так что все работало найти, пока я не попытался вызвать rake command из терминала.

1 голос
/ 16 марта 2012

Основной причиной был файл gem, который все еще ссылался на ruby-debug.Изменил его на ruby-debug19, сделал bundle install и bundle update, и теперь рейк работает нормально.Не могу объяснить, почему приложение работало нормально со ссылкой на ruby-debug.

0 голосов
/ 21 ноября 2012

Вы должны попробовать использовать chruby вместо rbenv.В отличие от rbenv, chruby не полагается на прокладки;так что больше не нужно запускать rehash все время.Вместо этого Chruby изменяет только PATH, GEM_HOME и GEM_PATH.

...