Package-Management
修改 RPM 包以移除依賴項
tl;博士:
我們建構了一個自動檢測依賴關係的 RPM 包(文件
Requires
中沒有.spec
)。如何從此 RPM 包中刪除依賴項。長話短說:-> 我將動態庫與二進製文件一起發布,但 RPM 自動依賴機制顯然將發布的庫也列為依賴項。如何避免這種情況?
我不希望 rpm 自動處理這些依賴關係;您可以使用:
AutoReqProv: no
但是,我多次打包自己的二進製文件和它們所依賴的庫;rpm 從來沒有以這種方式給我帶來任何麻煩;也許您的包裝方式不是最佳的?
有關自動依賴關係的進一步閱讀:http: //ftp.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html
如果在文件中指定了自動依賴項,則列出的這些依賴項
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 將不會抱怨,因為它們是隨您的包提供的。