sudoしたら$:の中身が変わってしまいます。
何故なのか教えて下さい。
Macintosh:~ user$ ruby -e 'p $:'
["/opt/local/lib/ruby/gems/gems/sources-0.0.1/lib", "/opt/local/lib/ruby/site_ruby/1.8", "/opt/local/lib/ruby/site_ruby/1.8/i686-darwin9.1.0", "/opt/local/lib/ruby/site_ruby", "/opt/local/lib/ruby/vendor_ruby/1.8", "/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin9.1.0", "/opt/local/lib/ruby/vendor_ruby", "/opt/local/lib/ruby/1.8", "/opt/local/lib/ruby/1.8/i686-darwin9.1.0", "."]
Macintosh:~ user$ sudo ruby -e 'p $:'
["/opt/local/lib/ruby/site_ruby/1.8", "/opt/local/lib/ruby/site_ruby/1.8/i686-darwin9.1.0", "/opt/local/lib/ruby/site_ruby", "/opt/local/lib/ruby/vendor_ruby/1.8", "/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin9.1.0", "/opt/local/lib/ruby/vendor_ruby", "/opt/local/lib/ruby/1.8", "/opt/local/lib/ruby/1.8/i686-darwin9.1.0", "."]
Macintosh:~ user$ echo $RUBYLIB
/opt/local/lib/ruby/gems/gems/sources-0.0.1/lib
Macintosh:~ user$ sudo echo $RUBYLIB
/opt/local/lib/ruby/gems/gems/sources-0.0.1/lib
sudoでRUBYLIB環境変数が渡っていないからだと思います。
最後の「sudo echo $RUBYLIB」はechoだけsudoで実行されていて、$RUBYLIBの変数展開は元のユーザのシェルで実行されています。
「sudo env」や「sudo sh -c 'echo $RUBYLIB'」などで確認してみてください。
URLが必須のようなので似たような話のURLを書いておきます。
なるほど、理解できました。
ありがとうございました。