Bundler(バージョン1.0.12)のおかげで作ったgemをGemfileに含めてから、そのようにバンドルまたはレーキを試みます:
$ rake
私はこのエラーメッセージを持っています:
Invalid gemspec in [/Users/zagzag/.rvm/gems/Ruby-1.9.2-p180@foobar/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/Ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"
1.7.2
この問題を解決する方法がわかりません。アイデアをありがとう。
「無効な日付形式の仕様」エラーを修正する方法は次のとおりです。
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}
それは私にとって勝利です!がんばろう
すべてのgemでこれを修正するコマンドを次に示します。
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}
に変換し、問題を修正する必要があります。
Damian Nowakからのコメントに注意してください。これらのコマンドは、rubygemsを混乱させる可能性があります!
Ubuntu 11.10では、以下がこのエラーを解決しました。
Sudo gem install rubygems-update
Sudo update_rubygems
以下は、一部のシステムでは動作しますが、Debianベースでは動作しません。
Sudo gem update --system
gem
をアップグレードできます。これを修正するには、gemspec
fileを直接編集します-から
2011-04-21 00:00:00.000000000Z
に
YYYY-MM-DD
または、Railsもアップグレードする
Sudo gem update Rails
問題が修正されます。
時間を指定しないでください...日付のみ。 2011-04-21
は正常に動作するはずです。
同じ問題があった。 rubygemsのバグのように見えます。これを修正したコミットは次のとおりです。 https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7
Rubygemsとbundlerを最新バージョンに更新する必要があります。それでも問題が解決しない場合は、問題を引き起こしているgemをすべて削除してから再インストールする必要があります。
これは、ベンホールの回答に対するコメントですが、その特権はまだありませんが、
gemの更新はうまくいかないようでした。日付形式が悪いため、gemをロードすることさえできないと思っていました。日付を手動で変更すると、1つずつ移動するにはイライラするので、grepは次のようになります。
grep -i *.gemspec -e '.*s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}
Sedの場合:
sed -i -e 's/\(.*\)s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}/\1s.date = %q\{\2}/p' ./*.gemspec
そして、あなた自身の責任で!!私はまだsed初心者ですが、うまくいきました;)
Slicehostサーバーでは、仕様フォルダーは別の場所にありました。パスは次のとおりです。
/usr/lib/Ruby/gems/1.8/specifications
提供されたエラーは、仕様フォルダへのパスを提供するはずです。
ショットガンアプローチ:すべてのgemをアンインストールして、バンドラーを再実行します。
gem list --no-version | xargs gem uninstall -aIx
rm -i `rvm gemdir`/specifications/*.gemspec
gem update --system
gem install bundler
bundle install
ベンホールが言ったように、システムごとに変更される可能性のあるgemspecファイルを修正する必要があります。エラーレポートでどのファイルが何であるかを確認するには、たとえば:
[/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]の無効なgemspec:仕様の無効な日付形式: "2011-12-28 00:00:00.000000000Z"
この例では、「/ var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec」ファイルを編集し、「2011-12-28」の「2011-12-28 00:00:00.000000000Z」を変更する必要がありますs.dateオプション。
今でもこの問題がありました。 Rubygemsを更新すると問題なく解決しました。
gem update --system
(バグ修正がRubygemsの安定リリースになるまで)gemコマンドの--versionスイッチを使用して、警告を生成するgemの同じバージョンを再インストールすることで解決しました。
有効な日付形式でgemの最新バージョンをインストールする場合でも、必ずgem cleanup GEMNAME
その後、gem
はまだ古いライブラリの仕様について文句を言うので。
これらのわずかに異なるマシン状態の多くでは、gemを再インストールすることが解決策になります。
私の場合:
cd /Library/Ruby/Gems/1.8/specifications &&
Sudo rm -rf *
私の場合、他のより創造的なソリューションは失敗しました。
私の問題はInvalid gemspec
ココアポッドを使用する場合。 gem install cocoapods
再び、すべてがバラ色でした。
これは私の環境です:
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/Ruby-1.9.2-p290@app
- Ruby EXECUTABLE: /Users/user/.rvm/rubies/Ruby-1.9.2-p290/bin/Ruby
- EXECUTABLE DIRECTORY: /Users/user/.rvm/gems/Ruby-1.9.2-p290@app/bin
- RUBYGEMS PLATFORMS:
- Ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/user/.rvm/gems/Ruby-1.9.2-p290@app
- /Users/user/.rvm/gems/Ruby-1.9.2-p290@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
私は最終的に私のシステムでこれらのエラーを防ぐ原因/方法を見つけることができました。キュウリとキュウリレールバージョン1.0.2に戻ります。最新バージョンを使用してこれを行っていました...