>>614
rbenvで自分のHOME以下にインストールしたRubyのバイナリを
stringsで調べたら、自分の名前がバイナリに含まれてることを確認した。
Rubyに限らずLinux/Unix系の一般的な作法なのかもしれないけど、
参照する基本的なパスはバイナリに埋め込まれるのかなーって今思ってる。
Windowsだと一つのディレクトリに全部入れるからわかりやすいけど
Linuxだと、バイナリは/usr/bin/ruby(シンボリックリンク、実体は/usr/bin/ruby2.5)
だけど、LOAD_PATHは/usr/local/lib/site_ruby2.5.0とか/usr/lib/ruby/vendor_ruby/2.5.0とか
相対パスで決まらない場所にあちこちに散らばるから、これらのパスを書いておかないといけないはずなんだよね
最初は/etcかな?ともよくよく考えると/optとかに入れることもあるわけで、/etc決め打ちってわけにも行かない
実行バイナリからの相対パスに設定ファイルがあるようにも思えないのでやっぱりバイナリ埋め込みなのかな。
言い換えると実行バイナリを移動したりしても参照するディレクトリを変更することはできないと
rbenvのように標準とは異なるLOAD_PATHにする仕組みを作るためにはバイナリをビルドする必要があると
もちろんソースコードに直接書いてるわけじゃなくて、autoconf?とかビルドするときの--prefixとか
その他の設定によって、バイナリに埋め込まれる
Ruby 初心者スレッド Part 64
■ このスレッドは過去ログ倉庫に格納されています
615デフォルトの名無しさん
2018/10/12(金) 11:05:56.88ID:Y9zzUgKz■ このスレッドは過去ログ倉庫に格納されています
