Yum
如何在不安裝包本身的情況下安裝 rpm 包的依賴項?(rhel/fedora)
我有一組軟體包 (*.rpm)。對於我可以
rpm -qRp <package>
列出的每個包的要求,但我想在不安裝包本身的情況下安裝它們(那些需要)。要求所有都存在於啟用的儲存庫中。有沒有一些簡單的方法可以做到這一點,而無需編寫我自己的腳本來解析rpm -qRp ...
例如輸出。我知道我可以通過使用 requires (
yum localinstall
) 安裝所有內容然後解除安裝原始包來做到這一點,但問題是我的集合包含具有依賴關係和它們之間的衝突的包。然而,所需的包並不衝突。我必須做多個yum localinstall <list>
,然後yum remove <list>
確保列表中的包不衝突。我有更好的方法嗎?我基本上想要類似的東西
yum-builddep
,但是對於要求,而不是 buildrequires。我的發行版是
Fedora
/RHEL
您可以使用該
yum deplist
命令生成包依賴項列表:$ yum deplist bind dependency: /bin/bash provider: bash.x86_64 4.3.39-5.fc21 dependency: /bin/sh provider: bash.x86_64 4.3.39-5.fc21 dependency: bind-libs(x86-64) = 32:9.9.6-10.P1.fc21 provider: bind-libs.x86_64 32:9.9.6-10.P1.fc21 dependency: coreutils provider: coreutils.x86_64 8.22-22.fc21 [...]
從中獲取包列表的
provider:
行:$ yum deplist bind | awk '/provider:/ {print $2}' | sort -u bash.x86_64 bind-libs.x86_64 coreutils.x86_64 glibc.i686 glibc.x86_64 grep.x86_64 krb5-libs.x86_64 libcap.x86_64 libcom_err.x86_64 libxml2.x86_64 openssl-libs.x86_64 shadow-utils.x86_64 systemd.x86_64 zlib.x86_64
將此輸出發送到
yum install
以安裝軟體包:$ yum deplist bind | awk '/provider:/ {print $2}' | sort -u | xargs yum -y install