«Недопустимый gemspec in» и «Недостаточно сформированное требование» всякий раз, когда я создаю новый проект в рельсах (проблема с огурцом) - PullRequest
17 голосов
/ 11 сентября 2011

Каждый раз, когда я создаю новый проект, я получаю следующие ошибки:

Adams-MacBook-Pro:for_testing adam$ rails new outsidein
Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"]

Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"]
Invalid gemspec in [/Users/adam/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/specifications/cucumber-1.0.4.gemspec]: Illformed requirement ["# 0.8.4"]

Я обновил огурцы и огуречные рельсы, но я получаю ошибки повсюду.Что мне делать?

Ответы [ 6 ]

63 голосов
/ 13 сентября 2011

Вам необходимо выполнить обновление до последней версии Rubygems, но вам также может понадобиться удалить все гемы, установленные в более старой версии Rubygems.

Если вы используете rvm с наборами гемов, это довольно просто:

$ rvm gemset empty

Теперь вы можете обновить Rubygems:

$ gem update --system

Если вы потеряли упаковщик, потому что он был установлен в вашем наборе гемов, установите его в глобальном наборе гемов, чтобы он был доступен для всехВаши драгоценные наборы, навсегда:

$ rvm @global gem install bundler

Теперь вы можете переустановить все свои драгоценные камни в красивый чистый набор камней на новых блестящих Рубиновых камнях:

$ bundle

Счастливы сейчас?

9 голосов
/ 12 сентября 2011

Эта проблема лучше всего описана в блоге 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 голосов
/ 13 сентября 2011

У меня тоже было много ошибок такого рода.Я только что вручную отредактировал файлы .gemspec и изменил #<Syck::DefaultKey-blah-blah на =.Для vim команда поиска и замены: %s/#<Syck::DefaultKey:0x.*>/=/.

4 голосов
/ 12 сентября 2011

Посмотрите, что помогло мне:

$ gem update --system
...
$ bundle update

Примечания:

  1. Я использую Ruby 1.8.7-352.
  2. Cucumber виден Bundler через Gemfile, поэтому я могу управлять его версией оттуда.

Я думаю, что ключ обновляет rubygems.

1 голос
/ 14 сентября 2011

Я только что прикрепил огурец к 1.0.2, на данный момент помогает ...

  gem 'cucumber', "1.0.2"
  gem 'cucumber-rails', "1.0.2"
1 голос
/ 12 сентября 2011

Огурцы-рельсы 0.3.2 требовали огурца> 0.8.0, но когда связыватель изменил нас с 0.10.2 до 1.04, он сломался.Требуется более старый огурец, например 0.10.2, и он будет работать

gem 'cucumber-rails', '0.3.2' gem 'cucumber', '0.10.2'

...