CGIとライブラリ検索パス

以下はDebianRuby 1.6.7-3woody4の話.
id:flappphys:20050217#p1 で,DebianのREXMLが使いものにならないので自分で取ってきた話をした.しかしそれをCGIから使う方法ではまりにはまった.
ホーム下にインストールした野良REXMLをシステムワイドのREXMLより優先して読み込みたかったが,Rubyインタプリタの起動オプション -I ではだめだった.コマンドラインから実行するときに -I/some/dir を使うと /some/dir$LOAD_PATH の先頭に来るのだが,CGIから使うためにshebangを使って #! /usr/bin/ruby -I/some/dir とするとなぜか /some/dir$LOAD_PATH の末尾に来て,require ではREXML 1.2.5が読み込まれてしまう.
じゃあ環境変数 RUBYLIB だ,というわけでshebangでenv(1)を使ったら*1,なぜかビジーループ.Rubyインタプリタはshebangのあるソースコードを引数で与えると,shebangのプログラムをexecするらしい.それで #! /bin/env RUBYLIB=/some/dir ruby -Ke が無限にexecされてたようだ.Ruby言語プログラムとしては単なるコメント行だろうが!!! Windowsのcmd.exeを視野に入れたにしたって訳分からん仕様だ.オプションで入/切できないのか?
結局,シェルスクリプトを1段余計に噛ませてしまった.まぁ効率なんて気にしないからいいや.
しかしその後,最適解は $LOAD_PATH.unshift '/some/dir' だと教えていただいた.うーむ $LOAD_PATH に代入できないと分かった時点で直接変更を諦めたのだったが,破壊的メソッドは使えたのか...
追記:ノートPCのRuby 1.8.1-0vl20((なぜか ruby -v の出力では "ruby 1.8.2 (2004-11-03) [i386-linux]" とある.))では -I/some/dirコマンドラインで使うと /some/dir$LOAD_PATH の先頭に,shebangで使うと先頭と末尾両方に追加される.

*1:env(1)ってこういうときに使うものだったのね.知らなかった.まぁ使えなかったわけだが.