ldd コマンドは、実行ファイルや共有ライブラリが動作時にリンクする共有ライブラリの一覧を表示 するためのコマンドです。
依存関係の確認や、ライブラリ不足によるエラー調査に役立ちます。
構文(Syntax)
ldd [オプション] 実行ファイル...
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 依存する共有ライブラリを一覧表示 | ldd /bin/ls |
-v | 詳細モード(すべてのバージョン情報を表示) | ldd -v /bin/ls |
-u | 未使用の直接依存ライブラリを表示 | ldd -u /usr/bin/ssh |
--version | ldd のバージョンを表示 | ldd --version |
実行例
依存ライブラリの一覧を表示
ldd /bin/ls
出力例:
linux-vdso.so.1 (0x00007ffc4f5d9000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f6d4f3a7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6d4efd6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6d4f5e9000)
詳細モードで確認
ldd -v /bin/ls
未使用ライブラリの確認
ldd -u /usr/bin/ssh
出力例:
Unused direct dependencies:
/lib/x86_64-linux-gnu/libcrypto.so.1.1
存在しないファイルを指定(エラー例)
ldd notfound
出力例:
ldd: notfound: No such file or directory
実行権限のないファイルを指定した場合
ldd /etc/passwd
出力例:
not a dynamic executable
関連コマンド
ldconfig: ライブラリキャッシュを更新・管理readelf -d: ELF バイナリの動的セクションを確認objdump -x: 実行ファイルやライブラリの詳細情報を表示
備考
lddは ELF 実行ファイルに対してのみ有効です。スクリプトや静的リンクされたバイナリには利用できません。- セキュリティ上の注意:
lddは実際にプログラムを実行して動的リンカを利用する場合があり、悪意あるバイナリに対して実行すると危険です。
→ 安全に解析したい場合はobjdump -xやreadelf -dを推奨します。 - ライブラリのロードパスは以下の順序で決まります:
- 実行ファイルに埋め込まれた rpath/runpath
- 環境変数
LD_LIBRARY_PATH /etc/ld.so.cache- デフォルトディレクトリ(
/lib,/usr/libなど)
参考
- manページ: man7.org ldd(1)
- GNU C Library: https://www.gnu.org/software/libc/

コメント