Windows での RubyGems 1.3.1 と rubygems-update

前記(Rails 2.2.2 と RubyGems 1.3.1 と rubygems-update - Rubyとか Illustratorとか SFとか折紙とか)の通り RubyGems 1.3.1 を入れたのだが、Windows で何か調子が悪い。

環境

  • WindowsXP SP3 Professional
  • ActiveScriptRuby 1.8.7
  • ASR同梱RubyGemsをupdate --system
    • とはいえ 1.2系から特に何も update しなかった

さらに

  1. gem install rubygems-update
  2. update_rubygems

RubyGems 1.3.1 以降を要求する Rails 2.2.2 (の script\server) は動くようになったので、1.3.1 自体は入ったのだろうが、gemコマンドが動かない。

<ドライブ:パス>\rails>gem
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

<ドライブ:パス>\rails>gem --version
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

<ドライブ:パス>\rails>gem -v
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

<ドライブ:パス>\rails>gem --help
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

<ドライブ:パス>\rails>gem update
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

ちょっと C:\Program Files\ruby-1.8\bin¥gem.bat を覘いてみる。

@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
GOTO :EOF
:WinNT
@"ruby.exe"" "%~dpn0" %*

"%~dpn0" とか「バッチ パラメータ」については昔のメモ(railsコマンドのデータベース指定 - Rubyとか Illustratorとか SFとか折紙とか, xyzzyプレゼン - Rubyとか Illustratorとか SFとか折紙とか)とか参照、これで自分のドライブパファイル名(拡張子無し)になって所要の Rubyファイルになる。
というか、そんな大袈裟な話しじゃなくて、最後の行の「"ruby.exe"" 」の二重引用符が続いてるの、一つ余計だ。
削除して保存。

<云々>
:WinNT
@"ruby.exe" "%~dpn0" %*

そして実行してみる、動いた

<ドライブ:パス>\rails>gem -v
1.3.1

<ドライブ:パス>\rails>gem --version
1.3.1

<ドライブ:パス>\rails>gem update --system
Updating RubyGems
Nothing to update