"Invalid gemspec in" и "Illformed requirements", когда я создаю новый проект в рельсах (проблема огурца)
Каждый раз, когда я создаю новый проект, я получаю следующие ошибки:
Adams-MacBook-Pro:for_testing adam$ rails new outsidein
Invalid gemspec in [/Users/adam/.rvm/gems/[email protected]/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"]
Invalid gemspec in [/Users/adam/.rvm/gems/[email protected]/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"]
Invalid gemspec in [/Users/adam/.rvm/gems/[email protected]/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"]
Я обновил огурец и огуречные рельсы, но я получаю ошибки повсюду. Что мне делать?
Ответы
Ответ 1
Огурцы-рельсы 0.3.2 требуемые огурцы > 0.8.0, но когда пучок изменил нас с 0.10.2 до 1.04, он сломался. Требовать более старый огурец, такой как 0.10.2, и он будет работать
gem 'огуречные рельсы', '0.3.2' драгоценный камень 'огурец', '0.10.2'
Ответ 2
Вам необходимо обновить до последней версии Rubygems, но вам также может потребоваться удалить любые камни, установленные в старой версии Rubygems.
Если вы используете rvm с gemset, это довольно просто:
$ rvm gemset empty
Теперь вы можете обновить Rubygems:
$ gem update --system
Если вы потеряли связки, потому что он был установлен в вашем gemset, установите его в глобальном gemset, чтобы он был доступен для всех ваших гемзет, навсегда:
$ rvm @global gem install bundler
Теперь вы можете переустановить все свои драгоценные камни в красивый чистый гемсет на блестящих новых Rubygems:
$ bundle
Счастлив сейчас?
Ответ 3
Эта проблема лучше всего описывается в блоге RubyGems:
http://blog.rubygems.org/2011/08/31/shaving-the-yaml-yak.html
TL; DR: gem update --system
и gem update bundler
RubyGems 1.8.10 решает это.
Ответ 4
Посмотрите, что помогло мне:
$ gem update --system
...
$ bundle update
Примечания:
- Я использую Ruby 1.8.7-352.
- Огурцы видны Bundler через Gemfile, поэтому я могу управлять его версией оттуда.
Я думаю, что ключ обновляет rubygems.
Ответ 5
У меня тоже было много подобных ошибок. Я только что отредактировал файлы .gemspec и изменил #<Syck::DefaultKey-blah-blah
на =
. Для vim команда поиска и замены %s/#<Syck::DefaultKey:0x.*>/=/
.
Ответ 6
Я только что приколол огурец до 1.0.2, помогает на данный момент...
gem 'cucumber', "1.0.2"
gem 'cucumber-rails', "1.0.2"