Linux の実行ファイルで使用されるすべての共有ライブラリを表示するにはどうすればよいでしょうか? 質問する

Linux の実行ファイルで使用されるすべての共有ライブラリを表示するにはどうすればよいでしょうか? 質問する

システム上の実行可能ファイルでどのライブラリが使用されているかを知りたいです。具体的には、どのライブラリが最も使用されているか、またそれらを使用するバイナリをランク付けしたいです。どうすればいいでしょうか?

ベストアンサー1

  1. 各実行可能ファイルの共有ライブラリを一覧表示するために使用しますldd
  2. 出力をクリーンアップする
  3. 並べ替え、カウントの計算、カウントによる並べ替え

「/bin」ディレクトリ内のすべての実行可能ファイルの回答を見つけるには:

find /bin -type f -perm /a+x -exec ldd {} \; \
| grep so \
| sed -e '/^[^\t]/ d' \
| sed -e 's/\t//' \
| sed -e 's/.*=..//' \
| sed -e 's/ (0.*)//' \
| sort \
| uniq -c \
| sort -n

すべてのディレクトリを検索するには、上記の「/bin」を「/」に変更します。

出力 (/bin ディレクトリのみ) は次のようになります。

  1 /lib64/libexpat.so.0
  1 /lib64/libgcc_s.so.1
  1 /lib64/libnsl.so.1
  1 /lib64/libpcre.so.0
  1 /lib64/libproc-3.2.7.so
  1 /usr/lib64/libbeecrypt.so.6
  1 /usr/lib64/libbz2.so.1
  1 /usr/lib64/libelf.so.1
  1 /usr/lib64/libpopt.so.0
  1 /usr/lib64/librpm-4.4.so
  1 /usr/lib64/librpmdb-4.4.so
  1 /usr/lib64/librpmio-4.4.so
  1 /usr/lib64/libsqlite3.so.0
  1 /usr/lib64/libstdc++.so.6
  1 /usr/lib64/libz.so.1
  2 /lib64/libasound.so.2
  2 /lib64/libblkid.so.1
  2 /lib64/libdevmapper.so.1.02
  2 /lib64/libpam_misc.so.0
  2 /lib64/libpam.so.0
  2 /lib64/libuuid.so.1
  3 /lib64/libaudit.so.0
  3 /lib64/libcrypt.so.1
  3 /lib64/libdbus-1.so.3
  4 /lib64/libresolv.so.2
  4 /lib64/libtermcap.so.2
  5 /lib64/libacl.so.1
  5 /lib64/libattr.so.1
  5 /lib64/libcap.so.1
  6 /lib64/librt.so.1
  7 /lib64/libm.so.6
  9 /lib64/libpthread.so.0
 13 /lib64/libselinux.so.1
 13 /lib64/libsepol.so.1
 22 /lib64/libdl.so.2
 83 /lib64/ld-linux-x86-64.so.2
 83 /lib64/libc.so.6

編集 - 「grep -P」を削除しました

おすすめ記事