1.ライブラリとは
コマンドなどのプログラムが共通して使える機能や処理をまとめた再利用可能なプログラム部品のこと。
例として、ファイルを開くコマンドは複数あるが、それらが個別にファイルを開く機能を一から作成しているのではなく、ライブラリからファイルを開く機能を参照していることがあげられる。
2.ライブラリの種類
ライブラリを利用することをリンクと呼び、プログラム組み込みは静的リンク(スタティックリンク)、プログラムが動作中にライブラリを参照する場合を動的リンク(ダイナミックリンク)と呼ぶ。
3.共有ライブラリ
(1)説明
動的リンクによって参照されるライブラリを共有ライブラリと呼ぶ。
ファイル名に「lib」「.so」が含まれたファイル。
保管先は通常、「/lib」「/user/lib」。64ビットシステムでは、「/lib64」「/user/lib64」。
(2)動的リンクの仕組み
基本的には以下のプロセスで動的リンクされる。通常はプログラムが自動で以下プロセスを行うため、使用者が意識する必要はない。
<流れ>
①共有ライブラリ参照プログラム「ld.so」を起動。
②共有ライブラリの場所が格納された環境変数「LD_LIBRARY_PATH」を参照し、共有ライブラリの存在を確認。
※ユーザやプログラムが一時的に使用する共有ライブラリ用
③共有ライブラリの場所が格納されたファイル「/etc/ld.so.cashe」を参照し、共有ファイルの存在を確認。
※システム全体で規定として使用する共有ライブラリ用
※このファイルはバイナリ形式のため普通に編集することはできない。「/etc/ld.so.conf」ファイルを編集し、「ldconfig」コマンドを実行する必要がある。
④共有ライブラリの格納先「/lib」「/user/lib」を参照。
(3)共有ライブラリの確認(ldd)
①lddとは
対象コマンドがどの共有ライブラリを参照しているかを確認するためのコマンド。
②書式
ldd コマンドの絶対パス
※コマンドの絶対パスは事前にwhich、typeコマンドで調べること