Sponsored Link

(6) ldconfigでライブラリパスを更新

プログラム実行時、OSは動的にリンクする共有ライブラリを探す。
「どこを探すか?」
の情報を .conf ファイルに記述しておくことにより、これをOSに伝えることができる。

ちなみにOSは以下のように共有ライブラリを探す。
1) 通常ライブラリが置かれるパス
/lib
/lib64
/usr/lib
/usr/lib64
2) 環境変数で指定されたパス
LD_LIBRARY_PATH
LD_LIBRARY_PATH_64
3) /etc/ld.so.conf に記述されたパス

ldconfigコマンドは、上記3)の情報をOSに伝えるためのコマンドだ。

CentOS6.4の場合、/etc ディレクトリに ld.so.conf ファイルが存在する。

[user@]$ ls -l /etc/ld.so.conf
-rw-r--r--. 1 root root 28  5月  5 04:22 2010 /etc/ld.so.conf
[user@]$

このファイルの中身を見ると、更に下位の ld.so.conf.d ディレクトリにある *.conf を読み込んでいる。

[user@]$ cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
[user@]$

なので、ライブラリ検索パスを追加したい場合、/etc/ld.so.conf.d ディレクトリ配下に拡張子が「.conf」のファイルを作成し、そのファイルの中でライブラリ検索パスを記述してやればよい。
ここでは 、/etc/ld.so.conf.d/my.conf を作成し、/home/user/mylib へのライブラリ検索パスを追加した。

[user@]$ cd /etc/ld.so.conf.d/
[user@]$ su
パスワード:
[root@]# vi my.conf
[root@]# cat my.conf
/home/user/mylib
[root@]#

設定を有効にするためには ldconfig コマンドを実行する必要がある。

[user@]$ su
パスワード:
[root@]# ldconfig

正しく検出されるようになったかを確認する。

[user@]$ ldconfig -p

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です