Подтвердить что ты не робот

Недопустимая спецификация формата даты в gemspec

Я получаю следующую ошибку, когда я пытаюсь использовать драгоценные камни в окнах, и я также упомянул qaru.site/info/52386/... и обновленные рубигемы и рельсы. Но ничто не могло решить проблему.

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

    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/
4b9b3361

Ответ 1

Я исправил эту проблему обновил мои RubyGems до 1.8.10 с помощью

gem update --system

Изменить: вы также можете попробовать (как предложено ZeissS)

gem install rubygems-update
update_rubygems

Ответ 2

Конечным решением является следующее:

Искать "spec" файлы в вашем каталоге Ruby: * C:\Ruby187\Lib\рубин\самоцветы\1.8\спецификации *

Если файл gemspec содержит что-то вроде этого: s.date =% q {2011-10-13 00: 00: 00.000000000Z} Затем удалите часть 00: 00: 00.000000000Z: s.date =% q {2011-10-13}

После сохранения этих файлов gemspec проблема решена.

Ответ 3

Ни один из этих решений не работал у меня. Чтобы исправить это, я удалил все содержимое упомянутого каталога (some/path/to/specification/), после чего я установил нужные мне камни (на самом деле Bundler затем установил пакет).

Ответ 4

В дополнение к запуску gem update --system я использовал gem install <gem with bad gemspec> для каждого из объектов gem env как плохое. Это очистило ошибки на моей машине.

Ответ 5

Как сказал Майкл в комментарии:

gem pristine --all

Ответ 6

Была та же проблема при попытке установить GEM на Ubuntu 11.10.

Invalid gemspec in [/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]: invalid date format in specification: "2011-12-28 00:00:00.000000000Z"

Вышеуказанные варианты не помогли мне. gem env сообщило следующее:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.7.2
  - RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]

Итак, я предположил, что эта проблема связана с тем, что мне нужна более новая версия RubyGems.

Выдавая gem update --system, выдается следующее предупреждение:

ERROR:  gem update --system is disabled on Debian, because it will overwrite the content of the rubygems Debian package, and might break your Debian system in subtle ways. The Debian-supported way to update rubygems is through apt-get, using Debian official repositories.
If you really know what you are doing, you can still update rubygems by setting the REALLY_GEM_UPDATE_SYSTEM environment variable, but please remember that this is completely unsupported by Debian.

Однако я наконец смог обновить rubygems до 1.8.15, выпустив:

sudo gem install rubygems-update && update_rubygems

После этого все работало, удачи!:)

Ответ 7

Недопустимый gemspec в [/var/lib/gems/1.8/specifications/chronic-0.6.4.gemspec]: неверный формат даты в спецификации: "2011-09-09 00: 00: 00.000000000Z"

Простым решением для такой проблемы является переход к файлу.. например,

Шаг 1. cd/var/lib/gems/1.8/specifications
Шаг 2. Откройте файл (хронический-0.6.4.gemspec) в редакторе выбора ур... (gedit chronic-0.6.4.gemspec)
шаг 3. измените s.date =% q {2011-10-13 00: 00: 00.000000000Z} на s.date =% q {2011-10-13}

Приветствия:)

Ответ 8

У меня была такая же проблема на моем ubuntu после обновления до 10.10. Ничто из этого не помогло мне. Мне пришлось установить update_rubygems script из http://rubygems.org/pages/download и запустить его один раз. Послесловие все сработало.

Ответ 9

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

Ответ 10

У меня слишком много драгоценных камней, чтобы исправить один за другим, и попробуйте как update_rubygems, так и gem pristine --all еще не повезло.

Поэтому я использую rvm clear gemset для удаления всех драгоценных камней с неправильным gemspec. Выполните bundle install, чтобы переустановить все драгоценные камни, и Viola!

Ответ 11

cd vendor/bundle/ruby/1.9.x/specifications
sed -i 's/ 00\:00\:00.000000000Z//g' *

Ответ 12

Решено, выполнив gem update --system, затем gem update.

Ответ 13

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

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 делает.

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

Ответ 14

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

Ответ 15

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

Ответ 16

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

Ответ 17

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

@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, и он просто выглядит так, как формат даты, который находится в файлах, которые показывают ошибки, не соответствует этому.

Что я сделал, так это просто вручную исправить эти оскорбительные gemspecs, как было предложено выше (изменение дат на "yyyy-mm-dd", это работает для меня.

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

s.rubygems_version =% q {1.3.5}

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

Ответ 18

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

$ sudo apt-get install ruby1.9.1

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