「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典

ldconfig

スポンサーリンク

何するコマンド?

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



書き方

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

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

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」コマンドの使い方を見てみましょう。

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

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


基本的な使い方は、そんなところです。

スポンサーリンク


書籍画像