Linuxコマンド辞典 lddコマンド(システム管理)

共有ライブラリへの依存関係を表示する「ldd」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

概要・使用方法

書式

$ ldd [オプション] ファイル名・・・

引数に指定した実行ファイルが利用している共有ライブラリを表示します。システムにインストールされているコマンドやライブラリは、そのほとんどが共有ライブラリを利用しています。共有ライブラリは、複数のプログラムから同じ機能を共有できるように関数を集めたファイルです。シェルからコマンドを実行すると、カーネルは実行ファイルと、実行に必要な共有ファイルをメモリに読み込み、プログラムを実行します。この共有ライブラリに不具合が生じたりファイル破損し無くなった場合、そのライブラリを利用するコマンドは期待した動作ができなかったり、起動しなくなります。

オプション

-d
–data-relocs
リロケート(メモリ上の再配置)を実施し、見つからないオブジェクトを表示する
-r
–function-relocs
データオブジェクトと関数の両方をリロケート(メモリ上の再配置)を実施、見つからないオブジェクトを表示する
-u
–unused
リンクしているが利用していないライブラリを表示する

リンクしているライブラリ一覧を表示する

$ ldd 実行ファイル

実行結果

[sunarin@localhost ~]$ ldd /bin/ls
        linux-vdso.so.1 (0x00007ffedb5de000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fead06dd000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007fead04d5000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fead0110000)
        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007feacfe8c000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007feacfc88000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fead0b2a000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007feacfa68000)

リンクされているが使われていないライブラリを表示する

$ ldd -u 実行ファイル

実行結果

[sunarin@localhost ~]$ ldd -u /bin/java
Unused direct dependencies:
        /lib64/libpthread.so.0
        /lib64/libz.so.1
        libjli.so
        /lib64/libdl.so.2
[sunarin@localhost ~]$