ldd – 実行ファイルが利用する共有ライブラリを表示するコマンド

依存関係管理
スポンサーリンク

ldd コマンドは、実行ファイルや共有ライブラリが動作時にリンクする共有ライブラリの一覧を表示 するためのコマンドです。
依存関係の確認や、ライブラリ不足によるエラー調査に役立ちます。

構文(Syntax)

ldd [オプション] 実行ファイル...

主なオプション一覧

オプション説明使用例
(なし)依存する共有ライブラリを一覧表示ldd /bin/ls
-v詳細モード(すべてのバージョン情報を表示)ldd -v /bin/ls
-u未使用の直接依存ライブラリを表示ldd -u /usr/bin/ssh
--versionldd のバージョンを表示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 -xreadelf -d を推奨します。
  • ライブラリのロードパスは以下の順序で決まります:
    1. 実行ファイルに埋め込まれた rpath/runpath
    2. 環境変数 LD_LIBRARY_PATH
    3. /etc/ld.so.cache
    4. デフォルトディレクトリ(/lib, /usr/lib など)

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント