Edited at

あるバイナリーファイルが依存している RPM を列挙する

More than 3 years have passed since last update.

昔のメモが出てきたので、ここに貼っておく。

バイナリーファイル aaa がある時、そのバイナリーに必要な RPM を列挙する場合


1. ldd

$ ldd ./aaa

linux-vdso.so.1 => (0x00007fff5bdff000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fa954ca3000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa9544f1000)
libz.so.1 => /lib64/libz.so.1 (0x00000031a1800000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa954ee7000)

→ 必要なライブラリーは

linux-vdso.so.1

libcrypt.so.1

libc.so.6

libz.so.1

ld-linux-x86-64.so.2


2. 各ライブラリーにおいて、rpm -qf (ファイルパス) を実行

$ rpm -qf /lib64/libcrypt.so.1

glibc-2.12-1.107.el6_4.2.x86_64

これを 1. で出力されたライブラリーに対して繰り返すと、以下のパッケージが必要であることがわかる。


1. glibc-2.12-1.107.el6_4.2.x86_64

このパッケージには以下のライブラリーファイルが含まれる


  • /lib64/libcrypt.so.1

  • /lib64/libc.so.6

  • /lib64/ld-linux-x86-64.so.2


2. zlib-1.2.3-29.el6.x86_64

このパッケージには以下のライブラリーファイルが含まれる


  • /lib64/libz.so.1