Недопустимый gemspec из-за формата даты в спецификации
Когда я включаю драгоценный камень, который я сделал, благодаря Bundler (версия 1.0.12), в Gemfile, а затем я пытаюсь связать или грабли именно так:
$ rake
У меня есть это сообщение об ошибке:
Invalid gemspec in [/Users/zagzag/.rvm/gems/[email protected]/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/[email protected]/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"
1.7.2
Я действительно не понимаю, как решить эту проблему. Спасибо за любые идеи.
Ответы
Ответ 1
Вот как я могу исправить ошибку "неправильный формат даты в спецификации":
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}
Это для меня! Удачи
Ответ 2
Вот команда, чтобы исправить это для всех ваших драгоценных камней:
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}
и должен исправить вашу проблему.
Ответ 3
Обратите внимание на комментарий Дамиана Новака. Эти команды могут испортить ваши рубигемы!
В Ubuntu 11.10 следующее решение этой ошибки:
sudo gem install rubygems-update
sudo update_rubygems
Следующие действия могут работать в некоторых системах, но не на Debian:
sudo gem update --system
Ответ 4
Вы можете обновить свой gem
. Чтобы исправить это, вы можете напрямую отредактировать файл gemspec
-
от
2011-04-21 00:00:00.000000000Z
к
YYYY-MM-DD
Или
обновите свои рельсы.
sudo gem update rails
Он исправит проблему.
Ответ 5
Не указывайте время... просто дату. 2011-04-21
должен работать нормально.
Ответ 6
Была та же проблема. Это похоже на ошибку в рубигемах. Здесь зафиксирована фиксация: https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7
Вам необходимо обновить rubygems и bundler до последних версий. Если после этого у вас по-прежнему возникают проблемы, вам может потребоваться удалить и затем переустановить любые драгоценные камни, которые могут вызвать проблемы.
Ответ 7
Это скорее комментарий к ответу ben hall, но у меня нет этой привилегии, но кажется, что
Обновление gem не похоже на работу, им кажется, что он даже не может загрузить драгоценный камень из-за плохого формата даты. ручное изменение дат было слишком расстраивающим, чтобы идти один за другим, поэтому grep:
grep -i *.gemspec -e '.*s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}
И для sed:
sed -i -e 's/\(.*\)s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}/\1s.date = %q\{\2}/p' ./*.gemspec
И на свои риски!
Я все еще новичок, но он работал у меня;)
Ответ 8
На моем сервере slicehost папка спецификаций находилась в другом месте. Вот путь:
/usr/lib/ruby/gems/1.8/specifications
Предоставленная ошибка должна указывать путь к папке спецификаций.
Ответ 9
Подход с дробовиком: Удалите все драгоценные камни и повторный набор.
-
gem list --no-version | xargs gem uninstall -aIx
-
rm -i `rvm gemdir`/specifications/*.gemspec
-
gem update --system
-
gem install bundler
-
bundle install
Ответ 10
(Пока исправление ошибки не попадет в стабильную версию Rubygems), я решил это, переустановив ту же версию любых генерирующих предупреждение камней, используя ключ -version команды gem.
Ответ 11
Как сказал Бен Холл, вы должны исправить файл gemspec, который может измениться для системы в систему. Чтобы узнать, какой файл видит, какой файл указывает в отчете об ошибке, например:
Недопустимый gemspec в [/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]: неверная дата формат в спецификации: "2011-12-28 00: 00: 00.000000000Z"
В этом примере вы должны отредактировать файл /var/lib/gems/ 1.8/specifications/svn2git-2.1.2.gemspec и изменить "2011-12-28 00: 00: 00.000000000Z" для "2011-12 -28" в опции s.date.
Ответ 12
Если бы эта проблема была решена. Обновление Rubygems решило все:
gem update --system
Ответ 13
Это моя среда:
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.10
- RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.1.0]
- INSTALLATION DIRECTORY: /Users/user/.rvm/gems/[email protected]
- RUBY EXECUTABLE: /Users/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
- EXECUTABLE DIRECTORY: /Users/user/.rvm/gems/[email protected]/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/user/.rvm/gems/[email protected]
- /Users/user/.rvm/gems/[email protected]
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Наконец-то мне удалось найти причину/способ предотвратить эти ошибки в моей системе. Я просто возвращаюсь к огурцам и огурцам-рельсам версии 1.0.2. Использование последних версий делало это...
Ответ 14
Даже если вы установите последнюю версию драгоценного камня с допустимым форматом даты, убедитесь, что gem cleanup GEMNAME
впоследствии, так как gem
все равно будет жаловаться на спецификации для более старых библиотек.
Ответ 15
Переустановка ваших драгоценных камней может быть решением во многих из этих немного разных состояний машины.
В моем случае:
cd /Library/Ruby/Gems/1.8/specifications &&
sudo rm -rf *
В моем случае другие более творческие решения не удались.
Моя проблема заключалась в получении Invalid gemspec
при попытке использовать cocoapods. Я снова побежал gem install cocoapods
, и все было розовым.