miyapiのひとりごと

blogこと始め。コンピュータと映画、そしてお酒の好きなmiyapiが気ままに書きつづる日記。。。

Linux: /usr/local/lib を使うには

2010-01-02 14:59:54 | Weblog
Redhat系のディストリビューションで /usr/local/lib に入れたライブラリを使うには、
/etc/ld.so.conf に以下のような行を追記して、ldconfig を実行する必要がある、というお話。

# ld.so.confに追記が必要
/usr/local/lib

先日、DVDを見ようとして、libdvdread をインストールしたのだけど、
なぜだか、プログラム実行時に「libdvdread が見つかりません」というメッセージが出る。

/usr/local/lib を見ると、たしかに libdvdread.so が入っている。
どうやらこのパス自体がサーチ対象に入っていないらしい。。

ライブラリを置くディレクトリは通常、以下のようなお約束になっている。

/usr/lib → ディストリビューションが管理するライブラリ
/lib → 起動時に必要なライブラリ
/usr/local/lib → ユーザーが作成したライブラリ

プログラムを実行する際は、ダイナミックリンカー( ld-linux.so.* ) が、
上記のパスをサーチして必要なファイルをダイナミックリンクすることに、
なっている。

ただし、毎回、ディレクトリをサーチしてライブラリをリンクしていると、
処理が遅くなるので、 通常は ライブラリキャッシュ( /etc/ld.so.cache) を参照して
ダイナミックリンクする。このキャッシュを更新するのが ldconfig コマンドなのだ。

liblinux.so.* が参照するディレクトリは /etc/ld.so.conf に記載されているので、
ここに /usr/local/lib を追記して、

あとは root になってから ldconfig を実行、ライブラリキャッシュを更新すれば OKだ。

おかげで man をひっくりかえしていろいろ調べるハメになってしまった。
勉強にはなったけど、なんだかなぁ。。

最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
Unknown (Kenji)
2013-01-21 22:50:32
助かりました。(^▽^;)
返信する

コメントを投稿