cygwin環境でRubyを動かすとき。「ubyって何だよ。」

cygwinを入れる前に、Windows環境にRubyを入れた時の話。


Windows環境にRubyを入れたら、どうやらWindows環境変数にこんなのがついてた。

RUBYOPT=-rubygems


どうやら、Cygwin環境変数ってWindows環境変数を継承するみたいで、
Cgywin上で「set」または「export」コマンドを使うと

$ set
 ・
 ・
RUBYOPT=-rubygems
 ・
 ・

こんな感じになる。



そうなるとcygwinをインストールし、Cygein環境でRubyを動かすときにときに困る。
ちょうどこんなエラーがでる。

$ ruby test.rb
ruby: no such file to load -- ubygems (LoadError)

ずっと放って置いたんだけど、「'ubygems'って何だよ!そんなのロードするよう頼んでないよ!!!!」と思い解決に乗り出す。
まぁ'rubygems'のことなんだけど。


原因は

先に示した環境変数RUBYOPTの値せい。
なんでかっていうと、RUBYOPTの値があると、「ruby test.rb」でやってるつもりが、実際の挙動は「ruby test.rb -rubygems」となっちゃうんですね。
んで、-rオプションの引数として「ubygems」が渡される感じでしょう。(100%憶測)

解決方法

これは
スタート→「マイコンピュータ」を右クリック→プロパティ→システムのプロパティの「詳細設定」タブ→環境変数
と辿り、RUBYOPTの値を削除する。
んで、Windows再起動。


これで、環境変数RUBYOPTの値は消えているので、先の

$ ruby test.rb
ruby: no such file to load -- ubygems (LoadError)

のようなエラーは出なくなる。


はず。