RPMパッケージの変更と依存関係の削除

RPMパッケージの変更と依存関係の削除

簡単に言うと:

私たちは依存関係を自動的に検出する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は文句を言いません。

関連情報