読者です 読者をやめる 読者になる 読者になる

メンチカツ

ロースカツが好きです

gem update がうまくいかないときのメモ

毎度毎度、あたらしいインスタンスのたびにgemの更新が
スムーズにできない愚かなわたし。

毎度毎度、「あーこれこの前やったわー」ってミサワになるのも
つかれたので、ちゃんとメモしておこう。


gem install でいろいろいれていくと、そのうち「gem をupdateしてくれよ」
って言われますよね。
わたしはZenTestいれようとして言われました。

# gem install ZenTest
ERROR:  Error installing ZenTest:
    ZenTest requires RubyGems version ~> 1.8. Try 'gem update --system' to update RubyGems itself.

それでまあ実行するんだけど、うまくupdateできないんだ。

# gem update --system
Updating RubyGems
ERROR:  While executing gem ... (NoMethodError)
    undefined method `version' for nil:NilClass

調べると、世間ではgemのupdateはrubygems-updateを使う潮流になっていた。
http://rubygems.org/gems/rubygems-update

# gem install rubygems-update
Fetching: rubygems-update-1.8.15.gem (100%)
Successfully installed rubygems-update-1.8.15
1 gem installed

つつがなくインストール。
すかさず実行。

# update_rubygems
Invalid gemspec in [/usr/lib64/ruby/gems/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z"
...

invalid date format in specification がもりもり出てくる。
それで調べてみると、stackoverflowの皆さんが、エラーしてる
とこの日付書式を消しちまえよHAHAHAとおっしゃっている。

http://stackoverflow.com/questions/7290575/invalid-date-format-specification-in-gemspec

消そうじゃないか。

# cd /usr/lib64/ruby/gems/1.8/specifications/
# find . -type f | xargs perl -pi -e 's/ 00:00:00\.000000000Z//'

やってやった。
もういちどupdateしてみる。

# update_rubygems
RubyGems 1.8.15 installed


うまくいった\(^o^)/