アップデート

アップデート

私はRUNPATH動的依存関係のために ELF 変数を試しています。途中でbash変更されたバイナリのコピーを取得しRUNPATHlddそれを実行すると次の結果が返されます。

$ 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が、システム ディレクトリから取得されます。なぜそうなるのでしょうか。何らかの方法でリンクしているのでしょうか。bashRUNPATH=$ORIGIN/linux-vdso.so.1

関連情報