ldconfig – 共有ライブラリのキャッシュを更新・管理するコマンド

依存関係管理

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 で管理されています。
  • ライブラリの検索順序は以下の通り:
    1. 実行ファイルに埋め込まれた rpath
    2. 環境変数 LD_LIBRARY_PATH
    3. /etc/ld.so.cache
    4. デフォルトディレクトリ (/lib, /usr/lib など)

参考

Bash玄

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

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

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

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

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

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

Bash玄をフォローする

コメント