2007/03/16(金)Ruby関係のPATHが滅茶苦茶
2007/03/15 25:26
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は注意することにする。危ういバランスの環境はすぐに壊れるということだ。