Неверная спецификация формата даты в gemspec - PullRequest
111 голосов
/ 03 сентября 2011

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

Ниже приведена полная ошибка,

    D:\>gem env
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00
.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/execjs-1.2.4.gemspec]: invalid date format in specification: "2011-08-03 00:00:
00.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/temple-0.3.3.gemspec]: invalid date format in specification: "2011-08-26 00:00:
00.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/guard-0.6.3.gemspec]: invalid date format in specification: "2011-09-01 00:00:0
0.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/guard-livereload-0.3.1.gemspec]: invalid date format in specification: "2011-09
-01 00:00:00.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/rack-cache-1.0.3.gemspec]: invalid date format in specification: "2011-08-27 00
:00:00.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00
.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/execjs-1.2.4.gemspec]: invalid date format in specification: "2011-08-03 00:00:
00.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/temple-0.3.3.gemspec]: invalid date format in specification: "2011-08-26 00:00:
00.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/guard-0.6.3.gemspec]: invalid date format in specification: "2011-09-01 00:00:0
0.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/guard-livereload-0.3.1.gemspec]: invalid date format in specification: "2011-09
-01 00:00:00.000000000Z"
Invalid gemspec in [D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/rack-cache-1.0.3.gemspec]: invalid date format in specification: "2011-08-27 00
:00:00.000000000Z"
RubyGems Environment:
  - RUBYGEMS VERSION: 1.7.2
  - RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]
  - INSTALLATION DIRECTORY: D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: D:/RailsInstaller/Ruby1.8.7/bin/ruby.exe
  - EXECUTABLE DIRECTORY: D:/RailsInstaller/Ruby1.8.7/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - D:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8
     - C:/Documents and Settings/jeygokul/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Ответы [ 18 ]

2 голосов
/ 10 февраля 2012

Я исправил эту проблему «неверная спецификация форматирования даты», изменив соответствующую строку в D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications/tilt-1.3.3.gemspec, поставив s.date = Time.now вместо s.date = "2011-08-25 00: 00: 00.000000000Z" То же самое можно использовать и для других файлов.

1 голос
/ 01 февраля 2012

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

gem install tilt   -v 1.3.3
gem install execjs -v 1.2.4
gem install temple -v 0.3.3
gem install guard  -v 0.6.3
gem install guard-livereload -v 0.3.1
gem install rack-cache -v 1.0.3

Я думаю, что gem pristine xxx yyy zzz или gem pristine --all могут не всегда (никогда?) Выходить в хранилища гемов, тогда как gem install xxx -v v.r.m делает.

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

1 голос
/ 09 августа 2012

"gem install rubygems-update", "update_rubygems", затем "gem pristine --all" - это комбинация, которая решила проблему для меня после того, как ни один из ранее перечисленных не помог.

1 голос
/ 12 апреля 2012

rvm gemset clear, а затем bundle install работал на меня!

1 голос
/ 22 ноября 2011

Решается путем запуска gem update --system, затем gem update.

0 голосов
/ 13 августа 2012

Если у вас была эта ошибка в Ubuntu 11.04, моим решением были следующие командные строки:

$ sudo apt-get install ruby1.9.1

После этого вы не получите ошибку даты.

0 голосов
/ 22 марта 2012

Это не совсем ответ, но если кому-то захочется копать больше, я нашел здесь спецификацию gemspec: http://rubygems.rubyforge.org/rubygems-update/Gem/Specification.html (прокрутите вниз до date = date () и нажмите, чтобы показать источник):

@date = case date
when String then
  if %r\A(\d{4})-(\d{2})-(\d{2})\Z/ =~ date then
    Time.utc($1.to_i, $2.to_i, $3.to_i)
  else
    raise(Gem::InvalidSpecificationException,
          "invalid date format in specification: #{date.inspect}")
  end
when Time, Date then
  Time.utc(date.year, date.month, date.day)
else
  TODAY
end

Итак, я думаю, что это код, который анализирует этот gemspec, и он выглядит так, как будто формат даты в файлах с ошибками не соответствует этому.

Я просто вручную исправил те оскорбительные гемспецификации, как предложено выше (изменив даты на «гггг-мм-дд», это работает для меня.

Все спецификации rubygem, у которых была эта проблема, также имеют строку

s.rubygems_version =% q {1.3.5}

Итак, я предполагаю, что это просто старые драгоценные камни? И что с этими% q {...}?

0 голосов
/ 28 января 2012

В моем случае упомянутые версии gem даже не были установлены.У меня были эти драгоценные камни, но не версии, чьи gemspecs вызывали ошибку.Итак, я просто удалил каждый из файлов /path/to/specifications/offending-XYZZ.gemspec.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...