RPMでの依存性
参照元:http://www.panic-net.org/modules/news/article.php?storyid=42
参照記事
Linux : RPMでの依存性の解決投稿者: meow on 2002/5/20 0:10:14 (1483 reads)
RPMでパッケージをインストールする際に、エラー: 依存性の欠如: (error: failed dependencies:) といったエラーメッセージが表示されてインストール出来ない場合があります。
この場合、RPMパッケージの名前で足りないものを表示してくれれば楽なのですが、*.soといったライブラリのファイル名で表示された場合、そのライブラリがどのパッケージに入っているのかが解らず、探すのに一苦労ということが良くあります。
これはバイナリ作成時(RPMパッケージ作成時)に必要とされたライブラリが、自動的にRPMの依存対象としてリストアップされるためです。
こういう時には、/cdrom/RedHat/RPMS等の依存しているRPMが入っているであろうディレクトリで # rpm -qp --filesbypkg * | grep ファイル名という検索をすれば見つけ出す事が出来ます。ただし、非常に遅いので全てのRPMを検索対象にせず、例えば「*lib*」等を対象にした方がいいでしょう。
例えば、
# rpm -i --test gnorpm-0.96-1.i386.rpmエラー: 依存性の欠如: usermode >= 1.13は gnorpm-0.96-1 に必要とされています libart_lgpl.so.2 は gnorpm-0.96-1 に必要とされています libaudiofile.so.0 は gnorpm-0.96-1 に必要とされています : : (省略)といった感じで表示される場合があります。
この場合、usermodeはパッケージ名なので、usermode-*.i386.rpmというRPMを探してインストールすれば、依存性の問題は解決できます。しかし、libart_lgpl.so.2は、ライブラリのファイル名なので、このライブラリがどのRPMに含まれているのかを見つけ出さなければなりません。(RedHat7.1の場合、libart*.rpmといったRPMはありません)
こういう時には、
# rpm -qp --filesbypkg *lib* | grep libart_lgplgnome-libs /usr/lib/libart_lgpl.so.2gnome-libs /usr/lib/libart_lgpl.so.2.2.0 という具合に検索することで見つけ出す事ができます。つまりlibart_lgpl.so.2はgnome-libs*.rpmに入っているということです。