1

次の共有オブジェクトを持つ RPM を作成しています。

libexample.so --> libexample.so.1.0.1
libexample.so.1.0.1

を使用して RPM を作成しているときにrpmbuild、rpm が を提供していることがわかりますlibexample.so.1.0.1。しかし、必要なセクションで私が見るlibexample.so

私が参照するmakefileプロジェクトのlibexample.so

rpm をインストールしようとすると、 を"Missing dependency: libexample.so"指すリンク ファイルとしてパッケージ化されているにもかかわらず、エラーが発生します。libexample.so.1.0.1

だから問題はどういうわけかRPMが私がパッケージングしていることを考慮していないことですlibexample.so(これはへのリンクですlibexample.so.1.0.1

--nodepsただし、オプションを使用して rpm をインストールしたところ、すべて正常に動作しています。

したがって、私の質問は、依存関係が見つからないというエラーを回避するためにどのように変更する必要があるかです。

不足している依存関係がリンク ファイルによるものであることを検証するために、リンク libexample.soファイルから実際の共有オブジェクト ( cp libexample.so.1.0.1 libexample.so) に変更しましたが、rpm は不足している依存関係エラーを出していません。

不足しているものと、RPM でこの不足している依存関係エラーを修正する方法を教えてください。あなたの助けと時間を前もってありがとう。

4

2 に答える 2

1

実行してみてください

rpm -q --requires _your_rpm_name_

そして、期待しているものとは異なるものが返されているかどうかを確認してください。自動依存関係スクリプトが依存関係を期待しているもの以外に設定している可能性があると思われます。以下のタグを仕様ファイルに追加し、必要なパッケージを手動で呼び出すことで、自動依存関係を無効にすることができます。

AutoReqProv: no
Requires: _rpm_providing_libexample.so_

http://ftp.rpm.org/max-rpm/s1-rpm-depend-auto-dependencies およびhttp://ftp.rpm.org/max-rpm/s1-rpm-depend-manual-dependenciesを参照してください。 .html

于 2012-10-20T17:50:09.007 に答える
0

私は専門家ではありませんが、問題は RPM が sonames を認識していないことだと思います。RPM ファイルに依存関係がある場合は、RPM システムをチェックします。

私のブログ投稿を参照してください。

于 2016-05-01T11:43:39.537 に答える