tl; dr:
依存関係を自動的に検出するRPMパッケージをビルドします(.spec
ファイルにRequires
はありません)。このRPMパッケージから依存関係を削除するにはどうすればよいですか。
長い話:->動的ライブラリをバイナリと一緒に出荷していますが、RPMSの自動依存関係メカニズムは、その付属ライブラリを依存関係としても明示しています。これを回避する方法は?
Rpmにこれらの依存関係を自動的に処理させたくありません。使用できます:
AutoReqProv: no
ただし、バイナリとそれらが依存するライブラリを複数回パッケージ化しています。 rpmがそのような問題を引き起こしたことは一度もありません。多分あなたの包装方法は最適ではありませんか?
自動依存関係の詳細については、次を参照してください。 http://ftp.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html
rpm -qp -requires <pkg>.rpm
にリストされているこれらの依存関係は、仮想パッケージif 自動依存関係<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はメッセージを表示しません。