このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】共有ライブラリの確認:lddコマンド

 Linuxシステムで動作するプログラムは、実行時に必要な機能を提供するために、さまざまな共有ライブラリに依存しています。これらの共有ライブラリは、プログラムの動作に不可欠なコードや機能を提供し、プログラムを軽量化し、開発者が一からすべての機能をコーディングする手間を省く役割を果たします。しかし、特定のプログラムがどの共有ライブラリに依存しているかを知ることが必要な場合があります。例えば、トラブルシューティングや依存関係の管理を行う際に、共有ライブラリの依存関係を確認することが重要です。

 このような場合に便利なのが、lddコマンドです。lddコマンドを使用すると、指定したプログラムが実行時にどの共有ライブラリに依存しているかを一覧表示することができます。これにより、ライブラリの依存関係を確認し、プログラムが正しく動作するために必要なライブラリが揃っているかどうかを確認することができます。

lddコマンドの概要

 ldd コマンドは、指定したプログラムが依存している共有ライブラリを表示するために使用されます。これにより、プログラムの実行に必要なライブラリの情報を確認できます。

【構文】
ldd [オプション] コマンドの絶対パス

コマンドの主なオプションと説明

オプション説明
-dデータ再配置を処理する。
-rデータと関数再配置を処理する。
-u使用されていない直接依存関係を表示する。
-v全ての情報を表示する。
--helpこのヘルプを表示して終了する。
--versionバージョン情報を表示して終了する。
コマンドの主なオプションと説明

コマンドの使用例と解説

1.catコマンドの絶対パスを検索します。

・「which cat」コマンドを実行します。

 which コマンドは、指定したコマンドの絶対パスを表示します。これにより、cat コマンドの絶対パスを取得できます。

user01@ubuntu-vm:~$ which cat
/usr/bin/cat
2.catコマンドが参照している共有ライブラリを確認します。

・「ldd /usr/bin/cat」コマンドを実行します。

 ldd コマンドを使用して、cat コマンドが依存している共有ライブラリを一覧表示します。

user01@ubuntu-vm:~$ ldd /usr/bin/cat
	linux-vdso.so.1 (0x00007ffe605ea000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000070d2bae00000)
	/lib64/ld-linux-x86-64.so.2 (0x000070d2bb141000)
3.lessコマンドの絶対パスを検索します。

・「which less」コマンドを実行します。

less コマンドの絶対パスを検索します。

user01@ubuntu-vm:~$ which less
/usr/bin/less
4.lessコマンドが参照している共有ライブラリを確認します。

・「ldd /usr/bin/less」コマンドを実行します。

 ldd コマンドを使用して、less コマンドが依存している共有ライブラリを確認します。

user01@ubuntu-vm:~$ ldd /usr/bin/less
	linux-vdso.so.1 (0x00007ffd005e2000)
	libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x000071772ea82000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000071772e800000)
	/lib64/ld-linux-x86-64.so.2 (0x000071772eafd000)

まとめ

 ldd コマンドは、プログラムが実行時に必要とする共有ライブラリを確認するための非常に便利なツールです。特に、依存関係の確認やトラブルシューティングに役立ちます。ldd コマンドを使用することで、プログラムがどのライブラリに依存しているかを簡単に確認でき、適切な環境構築をサポートします。