簡単に言うと:
私たちは依存関係を自動的に検出するRPMパッケージを構築しました(Requires
文書にはありません)。.spec
このRPMパッケージから依存関係を削除する方法。
簡単に言うと、 - >バイナリと一緒に動的ライブラリをリリースしましたが、RPM自動依存関係メカニズムは、リリースされたライブラリも依存関係としてリストされているようです。この状況を避ける方法は?
答え1
rpmがこれらの依存関係を自動的に処理することを望まない。
AutoReqProv: no
しかし、私は自分のバイナリとそれらが依存するライブラリを何度もパッケージ化しました。 rpmは私にそのような問題を引き起こしたことはありません。おそらくあなたのパッケージ方法が最適ではないかもしれません。
自動依存関係に関する追加資料:http://ftp.rpm.org/max-rpm/s1-rpm-dependent-auto-dependent.html
答え2
リストされた依存関係はrpm -qp -requires <pkg>.rpm
次のとおりです。仮想パッケージもし自動依存性<pkg>.spec
ファイルに割り当てられます。これらの仮想パッケージはライブラリではなく、soname
仮想パッケージ名にすぎません(たとえ外観は似ていますがsoname
)。
たとえば、Fedora 27ではこれが機能します。
$ rpm -q --whatprovides "libQt5Core.so.5()(64bit)"
qt5-qtbase-5.9.2-5.fc27.x86_64
しかし、これはそうではありません
$ rpm -q --whatprovides libQt5Core.so.5
no package provides libQt5Core.so.5
$ rpm -q --whatprovides libQt5Core
no package provides libQt5Core
$ rpm -q --whatprovides Qt5Core
no package provides Qt5Core
これらのライブラリを直接バンドルする場合<pkg>.rpm
(つまり、仮想パッケージを提供する)、これらの仮想パッケージがパッケージに付属しているため、システムにインストールされていない場合、RPMは文句を言いません。