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 しなかった
さらに
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