[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

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

ldconfig【コマンド】

pointこの用語のポイント

pointUNIX系で使えるコマンドだよ

point共有ライブラリを認識させるよ

スポンサーリンク

簡単に書くよ

ldconfig【コマンド】とは

共有ライブラリをコンピュータに教えてやるときに使うコマンド
です。

image piyo

詳しく書くよ

順番に見ていきましょう。

共有ライブラリは「いろんなプログラムから使えるプログラムの部品」ね。

ldconfig

キャッシュ」という用語も覚えておいてください。
キャッシュは「よく使うデータを取り出しやすいところに準備しておく仕組み」です。

ldconfig2

また、キャッシュとしての役割で使われるファイルを「キャッシュファイル」と言ったりもします。

ldconfig3

あとは「/etc/ld.so.conf」と「/etc/ld.so.cache」の関係性も理解しておきましょう。

/etc/ld.so.conf」は「共有ライブラリの検索パス(共有ライブラリの探し場所)を書いておく設定ファイル」です。
「etc」ディレクトリの中の「ld.so.conf」ファイルで「/etc/ld.so.conf」ね。

ldconfig4

/etc/ld.so.cache」は「共有ライブラリの名前と実際のファイルの置き場所が書いてあるファイル」です。
「etc」ディレクトリの中の「ld.so.cache」ファイルで「/etc/ld.so.cache」ね。

ldconfig5

/etc/ld.so.conf」には共有ライブラリの置いてある場所を書きます。
人間様が編集するのは、このファイルです。

ただし、コンピュータさんは「/etc/ld.so.conf」を見ません。
/etc/ld.so.cache」を見て、お仕事をしています。

ldconfig6

そこで「/etc/ld.so.conf」を編集した後は中身を「/etc/ld.so.cache」に反映してあげる必要があります。

ldconfig7

この「/etc/ld.so.conf」を「/etc/ld.so.cache」に反映するときに使うコマンドが「ldconfig」コマンドです。

ldconfig8

コンピュータさんは「/etc/ld.so.cache」を見て「どんな共有ライブラリがあるかな~」を判断しています。
「ldconfig」コマンドを実行することによって「/etc/ld.so.conf」の内容をコンピュータさんに教えてあげるのです。

「ldconfig」コマンドはUNIX系(LinuxとかMacとか)で使えます。

書き方は

ldconfig [オプション]

です。
オプションはあれやこれやとあります。

オプション説明
-c「使用する形式: new、old または compat(デフォルト)」らしい
-C【ファイル名】/etc/ld.so.cache」の代わりに指定したファイルを使用する
-f【ファイル名】/etc/ld.so.conf」の代わりに指定したファイルを使用する
-i「補助キャッシュファイルを無視しています」らしい
--ignore-aux-cache「補助キャッシュファイルを無視しています」らしい
-l「個々のライブラリを手動でリンクしてください」らしい
-nコマンドラインで指定されたディレクトリのみ処理します。キャッシュは作成しません。」らしい
-N「キャッシュの構築を行いません」らしい
-p/etc/ld.so.cache」の中身を表示する
--print-cache/etc/ld.so.cache」の中身を表示する
-r【パス】ルートディレクトリを指定したディレクトリに変更する
-v詳細情報を表示する
--verbose詳細情報を表示する
-X「リンクを生成しません」らしい
-?ヘルプを表示する
--helpヘルプを表示する
--usage使い方を表示する
-Vバージョン情報を表示する
--versionバージョン情報を表示する

などですね。

オプションを何も指定しないで

ldconfig

を実行すると、コンピュータさんは「/etc/ld.so.conf」の中に書いてある共有ライブラリの置き場所を見に行きます。
そして、そこで見つけた共有ライブラリを「/etc/ld.so.cache」に登録してくれます。
結果として「/etc/ld.so.conf」に書いた内容がコンピュータに反映される理屈です。

ldconfig9

あとは「-p」オプションも覚えておいてください。
「-p」オプションを指定して

ldconfig -p

を実行すると「/etc/ld.so.cache」の中身が表示されます。
私の環境(CentOS 7)では以下の内容が表示されました。

320 個のライブラリがキャッシュ `/etc/ld.so.cache' 内で見つかりました
        p11-kit-trust.so (libc6,x86-64) => /lib64/p11-kit-trust.so
        libz.so.1 (libc6,x86-64) => /lib64/libz.so.1
        libxtables.so.10 (libc6,x86-64) => /lib64/libxtables.so.10
        libxshmfence.so.1 (libc6,x86-64) => /lib64/libxshmfence.so.1

(中略)

        libICE.so.6 (libc6,x86-64) => /lib64/libICE.so.6
        libGL.so.1 (libc6,x86-64) => /lib64/libGL.so.1
        libEGL.so.1 (libc6,x86-64) => /lib64/libEGL.so.1
        ld-linux-x86-64.so.2 (libc6,x86-64) => /lib64/ld-linux-x86-64.so.2


基本的な使い方は、そんなところです。
それ以外のオプションは、必要に応じて、情報を補完してください。

image piyo2

一言でまとめるよ

まぁ「ldconfig」ってコマンドが出てきたら「共有ライブラリを認識させるときに使うんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク