Неверный gemspec из-за формата даты в спецификации - PullRequest
89 голосов
/ 24 апреля 2011

Когда я добавляю драгоценный камень, который я сделал, благодаря Bundler (версия 1.0.12), в Gemfile, а затем я пытаюсь сгруппировать или разгрести так:

$ rake

У меня есть это сообщение об ошибке:

Invalid gemspec in [/Users/zagzag/.rvm/gems/ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"

Я на последней Mac OS X (10.6.4), с:

$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.4.0]

и

$ gem -v
Invalid gemspec in [/Users/zagzag/.rvm/gems/ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"
1.7.2

Я действительно не понимаю, как решить эту проблему. Спасибо за любые идеи.

Ответы [ 15 ]

143 голосов
/ 19 августа 2011

Вот как я могу исправить ошибку «неверный формат даты в спецификации»:

1.) Перейдите в папку со спецификациями, расположенную по адресу:

/usr/local/lib/ruby/gems/1.8/specifications/

2.) Найдите спецификацию, которая вызывает проблему.

3.) Изменить s.date = %q{2011-05-21 00:00:00.000000000Z} на s.date = %q{2011-05-21}

Это ПОБЕДА для меня! Удачи

60 голосов
/ 18 ноября 2011

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

perl -p -i -e 's/ 00:00:00.000000000Z//' ~/gems/specifications/*.gemspec

Он преобразует s.date = %q{2011-05-21 00:00:00.000000000Z} в s.date = %q{2011-05-21} и должен исправить вашу проблему.

21 голосов
/ 04 октября 2011

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

В Ubuntu 11.10 эту ошибку исправили следующие:

sudo gem install rubygems-update
sudo update_rubygems     

В некоторых системах может работать следующее, но не на основе Debian:

sudo gem update --system
14 голосов
/ 19 июля 2011

Вы можете обновить свой gem. Чтобы это исправить, вы можете отредактировать файл gemspec напрямую - от

2011-04-21 00:00:00.000000000Z

до

YYYY-MM-DD

Или обновить ваши рельсы также

sudo gem update rails

Это решит проблему.

6 голосов
/ 26 апреля 2011

Не указывайте время ... только дату.2011-04-21 должно работать нормально.

4 голосов
/ 12 августа 2011

Была такая же проблема.Похоже, ошибка в rubygems.Вот коммит, который это исправил: https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7

Вам нужно обновить rubygems и bundler до последних версий.Если после этого у вас все еще будут проблемы, вам, возможно, придется удалить, а затем переустановить все драгоценные камни, которые вызывают у вас проблемы.

3 голосов
/ 22 сентября 2011

Это скорее комментарий к ответу Бена Холла, но у меня нет этой привилегии, хотя кажется, что

обновления гемов не работали, я думаю, что он не может даже загрузить гем из-заплохой формат даты.ручное изменение дат было слишком неприятным, чтобы идти по одному, поэтому grep:

grep -i *.gemspec -e '.*s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}

А для sed:

sed -i -e 's/\(.*\)s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}/\1s.date = %q\{\2}/p' ./*.gemspec

И на свой страх и риск !!Я все еще новичок в седе, но у меня это сработало;)

2 голосов
/ 26 октября 2011

Подход с дробовиком: Удалите все драгоценные камни и перезапустите упаковщик.

  1. gem list --no-version | xargs gem uninstall -aIx
  2. rm -i `rvm gemdir`/specifications/*.gemspec
  3. gem update --system
  4. gem install bundler
  5. bundle install
2 голосов
/ 06 сентября 2011

На моем сервере slicehost папка со спецификациями находилась в другом месте. Вот путь:

/ USR / Lib / рубин / камни / 1,8 / спецификации

В сообщении об ошибке должен быть указан путь к папке с техническими данными.

1 голос
/ 24 января 2013

Была ли эта проблема до сих пор. Обновление Rubygems решило это нормально:

gem update --system
...