HOMEサンプル問題・例題解説101試験の例題と解説102.3 共有ライブラリを管理する

101試験の例題と解説

102.3 共有ライブラリを管理する

今回は101試験の試験範囲から「102.3 共有ライブラリを管理する」についての例題を解いてみます。

■例題
共有ライブラリの説明として間違っているものを選びなさい。

1. プログラムが利用している共有ライブラリはlddコマンドで確認できる
2. 共有ライブラリの配置されているパスは/etc/ld.so.confに記述する
3. ldconfigコマンドを利用すると共有ライブラリのバージョンが管理できる
4. ユーザー独自の共有ライブラリ指定には環境変数LD_LIBRARY_PATHを使用する

※この例題は実際のLinuC試験とは異なります。

解答と解説

答えは 3. ldconfigコマンドを利用すると共有ライブラリのバージョンが管理できる です。

共有ライブラリは、様々な機能をプログラムに提供することで、プログラムの開発を容易にするものです。OSの基本的な機能も、共有ライブラリによって提供されていますし、暗号化のような高度な機能も共有ライブラリが用意されています。プログラムがどのような共有ライブラリを必要としているかは、lddコマンドで確認できます。

標準的な共有ライブラリはデフォルトパスである/libまたや/usr/libに配置されますが、それ以外のディレクトリに配置された場合には/etc/ld.so.confファイルにライブラリパスを記述し、ldconfigコマンドを
実行します。ldconfigコマンドはライブラリパスを検索し、/etc/ld.so.cacheファイルを作成します。プログラムはこのキャッシュファイルを参照して共有ライブラリを見つけます。つまり、/etc/ld.so.confファイルに記述しただけでは有効にはならず、ldconfigコマンドの実行が必要です。

ldconfigコマンドにはライブラリのバージョンを管理する機能はありません。

ldconfig -pコマンドを実行すると、/etc/ls.so.cacheファイルの中身を表示できます。

○ldconfig -pコマンドの実行例
# ldconfig -p
571 libs found in cache `/etc/ld.so.cache'
    libz.so.1 (libc6) => /usr/lib/libz.so.1
    libz.so (libc6) => /usr/lib/libz.so
    libxslt.so.1 (libc6) => /usr/lib/libxslt.so.1
    libxml2.so.2 (libc6) => /usr/lib/libxml2.so.2
    libxml2.so (libc6) => /usr/lib/libxml2.so
    libxmlsec1.so.1 (libc6) => /usr/lib/libxmlsec1.so.1
    libxmlsec1.so (libc6) => /usr/lib/libxmlsec1.so
    libxmlsec1-openssl.so.1 (libc6) => /usr/lib/libxmlsec1-openssl.so.1
    libxmlsec1-openssl.so (libc6) => /usr/lib/libxmlsec1-openssl.so
    libxkbui.so.1 (libc6) => /usr/X11R6/lib/libxkbui.so.1
(以下略)


共有ライブラリのパスを指定するもう1つの方法が、環境変数LD_LIBRARY_PATHを指定する方法です。/etc/ld.so.confファイルがシステム全体に対して有効であるのに対して、環境変数はユーザー別に適用されるので、特定のユーザーだけに共有ライブラリを使わせる必要があるプログラムの実行に有効です。

共有ライブラリは以下の順番で検索されます。

1. 環境変数LD_LIBRARY_PATH
2. /etc/ld.so.cacheファイル
3. /lib、/usr/libディレクトリ

  • 今回の解説について、理解できないポイントがあればどんどん質問を。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※上記の解説とその内容については、例題作成者の監修です。
    内容や試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

このページのトップへ