by shigemk2

当面は技術的なことしか書かない

共有ライブラリ管理

ライブラリとは、よく使われる機能をまとめ、他のプログラムから利用できるようにしたもの。いわばプログラムの部品である。
プログラムの作成時にその実行ファイル内に組み込まれるライブラリを静的ライブラリという。
また、プログラム実行時にロードされ、複数プログラム間で共有されるライブラリを共有ライブラリという。

C言語などでは、プログラム本体からライブラリの機能を呼び出して利用する。これをリンクという。

なおリンクには、
コンパイル時に実行ファイルに埋め込むスタティックリンクと、
実行時にライブラリの機能を呼び出すダイナミックリンクがある。

ダイナミックリンクによって共有ライブラリという。
共有ライブラリは、libreadline.so.5のように、 libxxxx.soxxxxという名前が付けられる。

共有ライブラリファイルは通常 /lib /usr/libに配置されている。

/lib や /usr/libディレクトリ以外のライブラリも検索する場合は、そのリストを/etc/ld.so.confファイルに記述しておく。
しかしプログラムを実行するたびに設定ファイルに記載されたこれらのディレクトリを検索するのは非効率なので、
実際にはバイナリのキャッシュファイルである/etc/ld.so.cacheが参照される。
ldconfigコマンドは、このキャッシュファイルを再構築する。共有ライブラリを変更した場合は、
ldconfigコマンドを実行してキャッシュを更新する。

なお、その他のディレクトリも検索対象に加えたい場合は、環境変数LD_LIBRARY_PATHにディレクトリリストを
追加する。

出典については…気にするな!