このエントリーをはてなブックマークに追加


ロードされている共有ライブラリの在処を調べる・ldconfigコマンド

ldconfigコマンドを使用することにより、キャッシュされているライブラリの一覧を確認することができます。
以下にldconfigコマンドを使った使用例を記します。

本資料はCentOS5を使用して動作確認を行いました。


-pオプションでライブラリ一覧を表示する

man ldconfigで調べると-pオプションは以下のように説明してあります。

オプション
<snip>
       -p     現在のキャッシュに保存されているディレクトリのリストと、ライブラリの候補を表示する。
<snip>

したがって、ldconfig -p と grepを使えば、キャッシュされているライブラリのディレクトリを調べることができます。

ldconfig -p | grep ライブラリ名

オプションなしでldconfigを実行すると以下のようになります。
(CentOSの一般ユーザでは、/sbinのパスがPATHに登録されていたので、/sbinを付加して実行しました。)

$ /sbin/ldconfig -p | head -10
2140 libs found in cache `/etc/ld.so.cache'
        libz.so.1 (libc6,x86-64) => /lib64/libz.so.1
        libz.so.1 (libc6,x86-64) => /usr/lib64/libz.so.1
        libz.so.1 (libc6) => /lib/libz.so.1
        libz.so.1 (libc6) => /usr/lib/libz.so.1
        libz.so (libc6,x86-64) => /lib64/libz.so
        libz.so (libc6,x86-64) => /usr/lib64/libz.so
        libz.so (libc6) => /lib/libz.so
        libz.so (libc6) => /usr/lib/libz.so
        libx11globalcomm.so.1 (libc6,x86-64) => /usr/lib64/libx11globalcomm.so.1

ライブラリの在処を調べてみる

readlineライブラリを調べた結果です。

$ /sbin/ldconfig -p | grep readline
        libreadline.so.5 (libc6,x86-64) => /usr/lib64/libreadline.so.5
        libreadline.so.5 (libc6) => /usr/lib/libreadline.so.5
        libreadline.so (libc6,x86-64) => /usr/lib64/libreadline.so
        libreadline.so (libc6) => /usr/lib/libreadline.so
        libguilereadline-v-17.so.17 (libc6,x86-64) => /usr/lib64/libguilereadline-v-17.so.17
        libguilereadline-v-17.so (libc6,x86-64) => /usr/lib64/libguilereadline-v-17.so


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:26