ldconfig コマンドは、Linux システムで共有ライブラリのキャッシュを更新・管理する コマンドです。
新しいライブラリを /usr/lib や /usr/local/lib などにインストールした後に実行して、プログラムから正しく利用できるようにします。
主に 共有ライブラリの検索を高速化・安定化 するために利用されます。
構文(Syntax)
ldconfig [オプション] [ディレクトリ...]
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | デフォルト設定(/etc/ld.so.conf および標準ディレクトリ)に基づいてキャッシュ更新 | sudo ldconfig |
-v | 詳細表示モード(処理したライブラリを出力) | sudo ldconfig -v |
-n DIR | 指定ディレクトリだけを処理(キャッシュ更新せずリンク作成のみ) | sudo ldconfig -n /usr/local/lib |
-N | キャッシュを更新せず、リンクだけ作成 | sudo ldconfig -N |
-X | リンクを更新せず、キャッシュだけ更新 | sudo ldconfig -X |
-p | 現在のキャッシュに登録されているライブラリ一覧を表示 | ldconfig -p |
-C FILE | 既定の /etc/ld.so.cache の代わりに別キャッシュファイルを指定 | sudo ldconfig -C /tmp/mylibs.cache |
-f FILE | 既定の /etc/ld.so.conf の代わりに別の設定ファイルを使用 | sudo ldconfig -f custom.conf |
実行例
キャッシュを更新(標準的な使い方)
sudo ldconfig
処理したライブラリを詳細表示
sudo ldconfig -v
出力例(抜粋):
/usr/local/lib:
libmylib.so.1 -> libmylib.so.1.0.0
/usr/lib:
libz.so.1 -> libz.so.1.2.11
登録済みライブラリを一覧表示
ldconfig -p | grep ssl
出力例:
libssl.so.1.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libssl.so.1.1
libssl.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libssl.so
特定ディレクトリだけ更新
sudo ldconfig -n /usr/local/lib
設定ファイルを指定してキャッシュ更新
sudo ldconfig -f /etc/ld.so.conf.d/mylibs.conf
エラー例(権限不足で実行)
ldconfig
出力例:
ldconfig: /etc/ld.so.cache is not writable: Permission denied
関連コマンド
ldd: 実行ファイルが依存するライブラリを表示ld.so: 共有ライブラリをロードする動的リンカmake install: ソースコードからビルドしたライブラリを配置後にldconfigが必要になることが多い
備考
ldconfigは通常 root 権限 で実行します。- ライブラリ検索ディレクトリは
/etc/ld.so.confと/etc/ld.so.conf.d/*.confで管理されています。 - ライブラリの検索順序は以下の通り:
- 実行ファイルに埋め込まれた
rpath - 環境変数
LD_LIBRARY_PATH /etc/ld.so.cache- デフォルトディレクトリ (
/lib,/usr/libなど)
- 実行ファイルに埋め込まれた
参考
- manページ: man7.org ldconfig(8)
- GNU C Library: https://www.gnu.org/software/libc/manual/

コメント