web-dev-qa-db-ja.com

仕様の日付形式のため、gemspecが無効です

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

この問題を解決する方法がわかりません。アイデアをありがとう。

89
Zag zag..

「無効な日付形式の仕様」エラーを修正する方法は次のとおりです。

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}

それは私にとって勝利です!がんばろう

143
ben hall

すべての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}に変換し、問題を修正する必要があります。

60
Philippe Creux

Damian Nowakからのコメントに注意してください。これらのコマンドは、rubygemsを混乱させる可能性があります!

Ubuntu 11.10では、以下がこのエラーを解決しました。

Sudo gem install rubygems-update
Sudo update_rubygems     

以下は、一部のシステムでは動作しますが、Debianベースでは動作しません。

Sudo gem update --system
21
Mark

gemをアップグレードできます。これを修正するには、gemspecfileを直接編集します-から

2011-04-21 00:00:00.000000000Z

YYYY-MM-DD

または、Railsもアップグレードする

Sudo gem update Rails

問題が修正されます。

14
Sayuj

時間を指定しないでください...日付のみ。 2011-04-21は正常に動作するはずです。

6
qrush

同じ問題があった。 rubygemsのバグのように見えます。これを修正したコミットは次のとおりです。 https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7

Rubygemsとbundlerを最新バージョンに更新する必要があります。それでも問題が解決しない場合は、問題を引き起こしているgemをすべて削除してから再インストールする必要があります。

4
spd

これは、ベンホールの回答に対するコメントですが、その特権はまだありませんが、

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初心者ですが、うまくいきました;)

3
pdelanauze

Slicehostサーバーでは、仕様フォルダーは別の場所にありました。パスは次のとおりです。

/usr/lib/Ruby/gems/1.8/specifications

提供されたエラーは、仕様フォルダへのパスを提供するはずです。

2
ben hall

ショットガンアプローチ:すべてのgemをアンインストールして、バンドラーを再実行します。

  1. gem list --no-version | xargs gem uninstall -aIx
  2. rm -i `rvm gemdir`/specifications/*.gemspec
  3. gem update --system
  4. gem install bundler
  5. bundle install
2
Jared Beck

ベンホールが言ったように、システムごとに変更される可能性のある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オプション。

1
PhoneixS

今でもこの問題がありました。 Rubygemsを更新すると問題なく解決しました。

gem update --system
1
polarblau

(バグ修正がRubygemsの安定リリースになるまで)gemコマンドの--versionスイッチを使用して、警告を生成するgemの同じバージョンを再インストールすることで解決しました。

1
Pistos

有効な日付形式でgemの最新バージョンをインストールする場合でも、必ずgem cleanup GEMNAMEその後、gemはまだ古いライブラリの仕様について文句を言うので。

0
Daniel Tsadok

これらのわずかに異なるマシン状態の多くでは、gemを再インストールすることが解決策になります。

私の場合:

cd /Library/Ruby/Gems/1.8/specifications &&
Sudo rm -rf *

私の場合、他のより創造的なソリューションは失敗しました。

私の問題はInvalid gemspecココアポッドを使用する場合。 gem install cocoapods再び、すべてがバラ色でした。

0
james_womack

これは私の環境です:

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に戻ります。最新バージョンを使用してこれを行っていました...

0
rchampourlier