我有一個幫助程序rpm包,用於安裝必要的依賴項以使某些軟件能夠正常工作;問題是所需的依賴包是32位的,不能在沒有--setopt=protected_multilib=false
標誌的情況下安裝在CentOS 64位上。與32位依賴關係的CentOS 64位RPM
要手動安裝我剛剛運行的依賴關係:
# yum install --setopt=protected_multilib=false libXrandr.i686
# yum install --setopt=protected_multilib=false gtk2.i686
# yum install --setopt=protected_multilib=false libXtst.i686
這將正確安裝的軟件包的32位版本。
直接安裝幫助程序包時會出現問題,因爲似乎無法爲依賴項強制--setopt = protected_multilib = false。
當試圖安裝包(本地,使用yum --nogpgcheck --setopt=protected_multilib=false localinstall centos_helper-0-0.x86_64.rpm
)我得到以下錯誤:
Examining centos_helper-0-0.x86_64.rpm: centos_helper-0-0.x86_64
Marking centos_helper-0-0.x86_64.rpm to be installed
Loading mirror speeds from cached hostfile
* base: mirror.dattobackup.com
* extras: mirror.metrocast.net
* rpmforge: mirror.de.leaseweb.net
* updates: mirror.dattobackup.com
Resolving Dependencies
--> Running transaction check
---> Package centos_helper.x86_64 0:0-0 will be installed
--> Processing Dependency: libXrandr.i686 for package: centos_helper-0-0.x86_64
--> Processing Dependency: gtk2.i686 for package: centos_helper-0-0.x86_64
--> Processing Dependency: libXtst.i686 for package: centos_helper-0-0.x86_64
--> Finished Dependency Resolution
Error: Package: centos_helper-0-0.x86_64 (/centos_helper-0-0.x86_64)
Requires: gtk2.i686
Error: Package: centos_helper-0-0.x86_64 (/centos_helper-0-0.x86_64)
Requires: libXrandr.i686
Error: Package: centos_helper-0-0.x86_64 (/centos_helper-0-0.x86_64)
Requires: libXtst.i686
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
這是同樣的錯誤嘗試安裝手動的依賴關係,而不protected_multilib當我得到=假標誌。
我使用創建包代表.spec文件具有以下內容:
Summary: CentOS helper file
Name: centos_helper
Version: 0
Release: 0
License: Public
Group: Applications/System
Requires: libXrandr.i686,gtk2.i686,libXtst.i686
%description
Installer CentOS helper package
%files
任何方式都依賴安裝是否正確?
使用so是更優雅的解決方案,但我希望避免必須維護該列表,因爲它很長;這就是爲什麼我帶着包去的原因,因爲有些包包含很多需要的東西。 但我會做一個測試標記庫作爲依賴而不是包。 –