Tips記事
» 2001年04月04日 00時00分 UPDATE

特定コマンドのライブラリ依存を確認したい

[木田佳克,ITmedia]

 ライブラリとは,複数のコマンドで共通して利用される共通モジュールのことだ。幾つものRPMパッケージや,tarボールからのインストール,そして削除などを行っていると,ライブラリの依存性が崩れてしまうことがある。

 このような場合には,該当するコマンドを「ldd」コマンドで調査すればよい。

# ldd /bin/bash
    libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001b000)
    libc.so.6 => /lib/libc.so.6 (0x4001f000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

 この例では,bashコマンド(シェル)のライブラリ依存を調べた結果だ。3つのライブラリに依存して動作していることが分かる。

 また,ライブラリにはデータベースが用意されており,コマンドはこのデータベースから自動判別をして読み込みを行う。現在のデータベース状況を確認するには,次のように指定すればよい。

# ldconfig -p
417 libs found in cache `/etc/ld.so.cache' (version 1.7.0)
   libzvt.so.2 (libc6) => /usr/lib/libzvt.so.2
   libzvt.so (libc6) => /usr/lib/libzvt.so
   libz.so.1 (ELF) => /usr/i486-linux-libc5/lib/libz.so.1
   libz.so.1 (libc6) => /usr/lib/libz.so.1
   libz.so (libc6) => /usr/lib/libz.so
   libxmms.so.1 (libc6) => /usr/lib/libxmms.so.1
   libxml.so.1 (libc6) => /usr/lib/libxml.so.1

   〜以下,略〜

 このデータベースは,tarボールなどでライブラリをインストールした際には更新されないこともある。手動で更新するには,次のように指定すればよい。この指定によって,「/usr/xxxxxx/lib/」ディレクトリ下のライブラリがデータベースに追加される。

# ldconfig -n /usr/xxxxxx/lib/

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ