動的依存関係を実装するためにELF変数を使用しようとしていますRUNPATH
。この処理中に Changed をbash
含むバイナリコピーを取得し、それを実行すると次のものが返されます。RUNPATH
ldd
$ ldd ./bash
linux-vdso.so.1 => (0x00007ffe6bdf9000)
libtinfo.so.5 (0x00007fbf8b97c000)
libdl.so.2 (0x00007fbf8b776000)
libc.so.6 (0x00007fbf8b3a5000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbf8bba7000)
- 自分のカスタムアイテムに依存アイテムへのパスがないのはなぜですかRUNPATH
?not found
これはどういう意味ですか?
私の推測は次のとおりです。
ldd
ファイルが見つかりませんが、メモリ内にあり(括弧内の数字はアドレスです)、ldd
現金メカニズムによって何らかの方法で知られています。これは正しいですか?しかし、なぜldd
ファイルが見つかりませんか?からインポートできない場合は、RUNPATH
標準ディレクトリに移動し続ける必要があります。そうですか?
修正する
私は今日ファイルを見つけました(それで昨日は現金でしたか?)。
$ cd dir_chroot2/
$ ldd ./bash
linux-vdso.so.1 => (0x00007ffed3530000)
libtinfo.so.5 => /home/.../dir_chroot2/./libtinfo.so.5 (0x00007f72c14a8000)
libdl.so.2 => /home/.../dir_chroot2/./libdl.so.2 (0x00007f72c12a1000)
libc.so.6 => /home/.../dir_chroot2/./libc.so.6 (0x00007f72c0ed0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f72c16d4000)
- バイナリとすべてのライブラリがあるld-linux-x86-64.so.2
にもかかわらず、まだシステムディレクトリからインポートされます。なぜですか?どういうわけか接続されていますか?bash
RUNPATH=$ORIGIN/
linux-vdso.so.1