2007/03/16(金)Ruby関係のPATHが滅茶苦茶

うちのPCにはRubyが3バージョン入っているため良く問題が起きる。

3バージョンとはApollo版とActiveScriptRubyのmswin32版とcygwin版なのだが、これの共存がどうも難しい。スクリプト言語はPATHに支配されるので別バージョンのライブラリを見にいったりしてしまう。

さて今回のトラブルは、諸事情あってmswin32版Rubyを1.8.5に入れ替えたため発生したようだ。入れ替え後、irbを動かそうとしたら、
c:\online\apollo\bin/readline.dll: 127: 指定されたプロシージャが見つかりません。

   - Init_readline (LoadError)

c:\online\apollo\bin/readline.dll       from c:/online/ruby/lib/ruby/1.8/irb/com

pletion.rb:10

        from c:/online/ruby/bin/irb.bat:18:in `require'

        from c:/online/ruby/bin/irb.bat:18
と怒られた。どうやら環境変数$RUBYLIBにapollo版のPATH、c:\online\apollo\binが書いてあるのが駄目らしい。しかし、奇怪なことに先にmswin版のPATH、c:\online\ruby\binを書いてやってもダメ(その場合はruby\binのreadline.dllでプロシージャが見つからないと言われる)。

つまり、環境変数$RUBYLIBに、
C:\ONLINE\RUBY\bin
c:\online\apollo\bin

c:\online\apollo\bin
の場合はダメで、

なら良いらしい。

ところが、RUBYLIBからapollo\binを外したところ、今度はApolloで作ったスクリプトがexerbで固めない限り動かなくなってしまう。

うーん、何も考えずに1.8.5を入れたのが迂闊だったか。

暫定でActiveScriptRubyを1.8.2に戻した。一応gemsも含めて動くようになったので解決。

今後mswin32版のVer Upは注意することにする。危ういバランスの環境はすぐに壊れるということだ。
OK キャンセル 確認 その他