ActiveScriptRuby 1.8.7p72に入っているRubyGemsは1.2.0だったのですが、capistranoでデプロイしようとするとechoeがなんたらというエラーになってしまいググッたらRubyGemsのバージョンをあげろということだったのであげることにしました。
まずここでgem update --systemが効かずちょっとはまったのですが、
C:\> gem install rubygems-update
C:\> update_rubygems
であげるとのこと。
で、あげるの自体はできたんですが、
C:\> gem -v
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
というエラーが出てしまいはまりました。
バッチファイル"C:\Program Files\ruby-1.8\bin\gem.bat"を調べてみるとruby.exeの後のダブルクォーテーションがダブっているというバグでした。
C:\Program Files\ruby-1.8\bin>c:\cygwin\bin\diff -u gem.bat.orig gem.bat
--- gem.bat.orig 2008-11-25 22:35:00.808000000 +0900
+++ gem.bat 2008-11-26 10:41:51.287883000 +0900
@@ -1,6 +1,6 @@
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
-@"ruby.exe"" "C:/Program Files/ruby-1.8/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9
+@"ruby.exe" "C:/Program Files/ruby-1.8/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
-@"ruby.exe"" "%~dpn0" %*
+@"ruby.exe" "%~dpn0" %*
これを修正すると無事動きました。
C:\Program Files\ruby-1.8\bin>gem -v
1.3.1
追記
その後情報デザイン学科ブログ » Post Topic » RubyGems 1.3.0, 1.3.1 の問題という記事を見つけました。バグ登録済みRubyForge: RubyGems: トラッカー詳細: 22712 command "gem" does not work when "ruby.exe" is located at "C:\Program Files\ruby-1.8\bin"とのことでそのうち修正されるといいですね。
さらに追記
と思ったら実はまだechoeがないというエラーは終わっていませんでした。
C:\プロジェクトのデイレクトリ>cap -T
C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/rubygems.rb:636:in `report_acti
vate_error': Could not find RubyGem echoe (>= 0) (Gem::LoadError)
from C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/rubygems.rb:141:in
`activate'
from C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/rubygems.rb:165:in
`activate'
from C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/rubygems.rb:164:in
`each'
from C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/rubygems.rb:164:in
`activate'
from C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/rubygems.rb:49:in
`gem'
from C:/Program Files/ruby-1.8/bin/cap:18
原因は調べていませんが対処療法で直りました。
capistranoを入れ直して
C:\プロジェクトのデイレクトリ>gem install capistrano
再度実行してみると
C:\プロジェクトのデイレクトリ>cap -V
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
となるので、"C:\Program Files\ruby-1.8\bin\cap.bat"も上と同様にruby.exeの後のダブルクォーテションがダブっているのを修正すると
C:\プロジェクトのデイレクトリ>cap -V
Capistrano v2.5.2
動きました。