Ответ 1
Я исправил эту проблему обновил мои RubyGems до 1.8.10 с помощью
gem update --system
Изменить: вы также можете попробовать (как предложено ZeissS)
gem install rubygems-update
update_rubygems
Я получаю следующую ошибку, когда я пытаюсь использовать драгоценные камни в окнах, и я также упомянул 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/
Я исправил эту проблему обновил мои RubyGems до 1.8.10 с помощью
gem update --system
Изменить: вы также можете попробовать (как предложено ZeissS)
gem install rubygems-update
update_rubygems
Конечным решением является следующее:
Искать "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 проблема решена.
Ни один из этих решений не работал у меня. Чтобы исправить это, я удалил все содержимое упомянутого каталога (some/path/to/specification/), после чего я установил нужные мне камни (на самом деле Bundler затем установил пакет).
В дополнение к запуску gem update --system
я использовал gem install <gem with bad gemspec>
для каждого из объектов gem env как плохое. Это очистило ошибки на моей машине.
Как сказал Майкл в комментарии:
gem pristine --all
Была та же проблема при попытке установить 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
После этого все работало, удачи!:)
Недопустимый 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}
Приветствия:)
У меня была такая же проблема на моем ubuntu после обновления до 10.10. Ничто из этого не помогло мне. Мне пришлось установить update_rubygems script из http://rubygems.org/pages/download и запустить его один раз. Послесловие все сработало.
Я исправил эту проблему с недопустимой спецификацией даты форматирования, изменив соответствующую строку в 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" То же самое можно использовать и для других файлов.
У меня слишком много драгоценных камней, чтобы исправить один за другим, и попробуйте как update_rubygems
, так и gem pristine --all
еще не повезло.
Поэтому я использую rvm clear gemset
для удаления всех драгоценных камней с неправильным gemspec.
Выполните bundle install
, чтобы переустановить все драгоценные камни, и Viola!
cd vendor/bundle/ruby/1.9.x/specifications
sed -i 's/ 00\:00\:00.000000000Z//g' *
Решено, выполнив gem update --system
, затем gem update
.
Различные решения, отмеченные в этих ответах, не работали для меня. То, что работа переустанавливала конкретные версии злоумышленников. В вашем случае это выглядело бы так:
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
делает.
В любом случае, повторная установка оскорбительных версий драгоценных камней работала для меня, хотя это было утомительно...
rvm gemset clear
, а затем bundle install
работал у меня!
"gem install rubygems-update", "update_rubygems", то "gem pristine -all" - это комбинация, которая решила проблему для меня после того, как ни одна из ранее перечисленных не работала.
В моем случае упомянутые версии gem не были установлены. У меня были эти драгоценные камни, но не версии, которые gemspecs вызывали ошибку. Итак, я просто удалил каждый из файлов/path/to/specifications/offending-X.Y.ZZ.gemspec.
На самом деле это не ответ, но если кто-то чувствует, как копать больше, я нашел здесь эту спецификацию 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 {...} в любом случае?
Если у вас была эта ошибка в Ubuntu 11.04, моим решением были следующие командные строки:
$ sudo apt-get install ruby1.9.1
После этого вы не получите ошибку даты.