« Amazon S3にバックアップをする | トップページ | エクセルでシートごとへのリンクの一覧を作成する。 »

2009年10月31日 (土)

windowsでgemで入れたコマンドがすべてin `load': no such file to load になる

WindowsのRuby実行環境としてActiveScriptRuby 1.8.7(p174) with-winsock2 
をインストール。
環境変数PATHにC:/Program Files/ruby-1.8/binを追加し再起動
(環境変数の設定を反映させるため。)

C:\>gem --version
1.3.4

C:\>gem install rake
Successfully installed rake-0.8.7
1 gem installed
Installing ri documentation for rake-0.8.7...
Installing RDoc documentation for rake-0.8.7...

C:\>rake --version
C:/Program Files/ruby-1.8/bin/rake:18:in `load': no such file to load --
C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake"
(LoadError)
        from C:/Program Files/ruby-1.8/bin/rake:18

疑問:
え!? rake 入れたばっかりなのに、なんでno such file?
答え:
実はgemのversion 1.3.4には実行ファイルへのパスにスペースが含めないバグ
があるせいで、実行できない。

疑問:
ruby consoleだと、rakeがちゃんと動作する。なんで!?
答え:
ruby consoleはコマンドプロンプト立ち上げ時に環境変数PATHの先頭に
C:\PROGRA~1\ruby-1.8\bin;を追加している。PROGRA~1という
ディレクトリ名にはスペースが含まれないため、gemのバグを回避している。

疑問:
C:\PROGRA~1って何?
答え:
8.3形式の短いファイル名を表示させる に記述されている通り、Windowsは、
昔のDOSに対応できるよう、ディレクトリやファイル名に自動的に8.3形式の
別名を割り振り、どちらの名前を指定しても同じ動作になる。

疑問:
で、rakeを実行するにはどうすればいいの?
答え:
・環境変数PATHにC:/Program Files/ruby-1.8/binではなく、
C:\PROGRA~1\ruby-1.8\binを追加する。(消極的解決法

・gemをversion1.3.5にアップデートする。(積極的解決法

疑問:
gemってどうやってアップデートするの?
答え:

C:\>gem install rubygems-update
Bulk updating Gem source index for:
http://gems.rubyforge.org/
Succeccfully installed rubygems-update-1.3.5
1 gem installed

C:\>set PATH=C:\PROGRA~1\ruby-1.8\bin;%PATH%

C:\>update_rubygems

新しいコマンドプロンプトを立ち上げ、rakeが実行できるか確認する。


C:\>rake --version
rake, version 0.8.7


CONGRATULATION!!

|

« Amazon S3にバックアップをする | トップページ | エクセルでシートごとへのリンクの一覧を作成する。 »

ruby」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/68673/46629886

この記事へのトラックバック一覧です: windowsでgemで入れたコマンドがすべてin `load': no such file to load になる:

« Amazon S3にバックアップをする | トップページ | エクセルでシートごとへのリンクの一覧を作成する。 »