共有ライブラリの管理
-CentOS- | -Ubuntu-

共有ライブラリへのパス指定

共有ライブラリは、/lib/や/usr/lib/ディレクトリに配置される。それ以外のディレクトリに配置したいときは以下のように設定を行う。

  • /etc/ld.so.confにディレクトリパスを記述し、ldconfigコマンドを実行する。
  • 環境変数LD_LIBRARY_PATHにディレクトリパスを追加する。

/etc/ld.so.confにディレクトリパスを記述したら、ldconfigコマンドを実行する必要がある。プログラムが実際に参照するのは、/etc/ld.so.confではなく、/etc/ld.so.cacheになる。ldconfigコマンドを実行すると、/etc/ld.so.confの内容に基づいて、/etc/ld.so.cache経バイナリで書き出す。

ld.co.confとld.so.cache

ld.so.confとld.so.cache

 

ディレクトリパスの確認(CentOS)

ld.so.confを確認する

user@computer$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
/etc/ld.so.conf.d/ディレクトリに格納されたファイルにライブラリパスが書いてあると表示される。

/etc/ld.so.conf.d/を確認する

user@computer$ ls /etc/ld.so.conf.d/
bind-export-x86_64.conf
dyninst-x86_64.conf
kernel-3.10.0-1127.10.1.el7.x86_64.conf
.
.
.

ファイルの内容を確認する

user@computer$ cat /etc/ld.so.conf.d/bind-export-x86_64.conf
/usr/lib64//bind9-export/ ライブラリパス

 

ディレクトリパスの確認(Ubuntu)

ld.so.confを確認する

user@computer$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
/etc/ld.so.conf.d/ディレクトリに格納されたファイルにライブラリパスが書いてあると表示される。

/etc/ld.so.conf.d/を確認する

user@computer$ ls /etc/ld.so.conf.d/ | sort
libc.conf
x86_64-linux-gnu.conf
zz_i386-biarch-compat.conf

ファイルの内容を確認する

user@computer$ cat /etc/ld.so.conf.d/libc.conf
# libc default configuration
/usr/local/lib ライブラリパス

 

共有ライブラリのキャッシュを生成・更新する

「ldconfig」コマンド

書式
ldconfig [オプション] [ディレクトリ]
主なオプション名 説明
-p 現在のキャッシュを表示する。
-f ファイル名 /etc/ld.so.confの代わりに設定ファイルを指定する。
-c ファイル名 /etc/ls.so.cacheの代わりにキャッシュファイルを指定する。
ディレクトリ 共有ライブラリを検索するディレクトリ

参照元情報

LinuCレベル1 合格教本
LinuCレベル1 合格教本