Ruby “如何安全地修复”;规范中的日期格式无效“;适用于webrobots-0.0.10.gempec

Ruby “如何安全地修复”;规范中的日期格式无效“;适用于webrobots-0.0.10.gempec,ruby,gem,Ruby,Gem,对于每次gem执行,我都会收到以下错误: Invalid gemspec in [...rvm/gems/ruby-1.9.2-p136/specifications/webrobots-0.0.10.gemspec]: invalid date format in specification: "2011-07-01 00:00:00.000000000Z" 我不是webrobots的维护者,我不能卸载那个gem 有什么安全措施可以解决生产服务器上的此问题吗?如今,使用Github和Bund

对于每次
gem
执行,我都会收到以下错误:

Invalid gemspec in [...rvm/gems/ruby-1.9.2-p136/specifications/webrobots-0.0.10.gemspec]: invalid date format in specification: "2011-07-01 00:00:00.000000000Z"
我不是webrobots的维护者,我不能卸载那个gem


有什么安全措施可以解决生产服务器上的此问题吗?

如今,使用Github和Bundler,您不必成为维护人员就可以解决所用gems中的问题。只需在Github上分叉,解决任何问题,他们只需将Bundler指向您的分叉。如果它是一个方便的扩展到GEM,而不仅仅是为自己的黑客,你也可以考虑向原始维护者提出一个拉请求来将你的更改滚入官方GEM。 话虽如此,在0.0.10版本的webrobots的gemspec中似乎没有出现。当gemspec中的日期与错误中的格式相同时,可能会出现此问题,例如:

"2011-07-01 00:00:00.000000000Z"
查看gemspec的一个片段,我们有:

s.authors = [%q{Akinori MUSHA}]
s.date = %q{2011-07-01}
s.description = %q{This library helps write robots.txt compliant web robots in Ruby.
所以这似乎是正确的。另一个已知会导致此问题的问题是YAML解析器问题,要解决此问题,您需要强制使用特定的YAML解析器(psych)。您需要在某个地方定义以下内容:

require 'yaml'
YAML::ENGINE.yamler = 'syck'
最后,您可能希望清理本地安装,然后进行重新部署,这可能会对您有所帮助。同样,如果您使用Bundler,请执行以下操作:

gem update --system
rvm gemset empty mygemset
gem install bundler
gem install
以下是修复“规范中的日期格式无效”错误的方法:

1.)转到位于以下位置的规范文件夹:

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

2.)查找导致问题的规范

3.)将“s.date=%q{2011-05-21 00:00:00.000000000 Z}”更改为“s.date=%q{2011-05-21}”


我赢了!祝你好运

你可能正在使用旧版本的gem。请参阅当前版本
gem-v
。 将您的gem升级到最新版本

gem update --system
并使用新的gem再次安装gem文件<代码>gem安装或
捆绑安装