「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ldd【コマンド】

pointこの用語のポイント

pointコマンドだよ

pointUNIX系で使えるよ

point使っている共有ライブラリを表示するよ

スポンサーリンク

簡単に書くよ

ldd【コマンド】とは

コンピュータさんに対する命令文(コマンド)のひとつ
であり

指定したファイルで使っている共有ライブラリ(いろいろなプログラムから使える、プログラムの部品)を表示するときに使うコマンド
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

共有
ライブラリ
共有ライブラリ


について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

共有は、今回は「一緒に使おうね~」の意味です。

ldd

ライブラリは「プログラムの部品をいっぱい集めて、ひとまとめにしたファイル」です。
いろいろできる便利な部品が詰まっています。

ldd2

共有ライブラリは「いろいろなプログラムから使えるライブラリ」です。
文字通り、共有して使えるライブラリです。

ldd3

以上を踏まえて

「このファイルは、どんな共有ライブラリを使ってるのかな~?」を確認するときに使うコマンド

が「ldd」コマンドです。
「ldd」コマンドはUNIXLinuxとかMacとか)で使えます。

書き方は

ldd [オプション] [対象のファイル名]

です。
オプションは、ちょぼちょぼとあります。

オプション説明
-dデータ再配置を処理する」らしい
--data-relocs「データ再配置を処理する」らしい
-r「データと関数再配置を処理する」らしい
--function-relocs「データと関数再配置を処理する」らしい
-u使用されていない直接依存関係を表示する
--unused使用されていない直接依存関係を表示する
-v全ての情報を表示する
--verbose全ての情報を表示する
--helpヘルプを表示する
--versionバージョン情報を表示する

などです。

対象のファイルを指定して「ldd」コマンドを実行すると、共有ライブラリの依存関係(そのファイルがどんな共有ライブラリを使っているか)を表示してくれます。
例えば

ldd /usr/bin/ls

を実行したところ、私の環境CentOS 7)では以下の内容が表示されました。

linux-vdso.so.1 =>  (0x00007fff455ae000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f2198947000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f2198742000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f2198538000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2198177000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f2197f16000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f2197cf0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2197aec000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2198b73000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f21978e7000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f21976ca000)


見てもよく分かりませんが、きっと、これが「/usr/bin/ls」ファイルの使っている共有ライブラリなのでしょう。

なお、オプションの意味については、よく分かりませんでした。
興味がある人は他のところで調べてください。


image piyo2

一言でまとめるよ

まぁ「ldd」ってコマンドが出てきたら「使っている共有ライブラリ(いろいろなプログラムから使える、プログラムの部品)を表示するときに使うんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像064
書籍画像046

おまけ

■訳してみるよ

「ldd」は「list dynamic dependencies(リスト・ダイナミック・ディペンデンシーズ)」の略だそうです。
「list(リスト)」の意味は「一覧表」とか「一覧表にする」とかです。
「dynamic(ダイナミック)」の意味は「動的な」とかです。
「dependencies(ディペンデンシーズ)」は「dependency(ディペンデンシー)」の複数形です。
「dependency(ディペンデンシー)」の意味は「依存状態」とかです。
何となく くっつけると

動的な依存状態を一覧表にする

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
つくって、壊して、直して学ぶ Git&GitHub 入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
優れたエンジニアがコミュニティの中でしていること