Wie installiere ich Abhängigkeiten eines RPM-Pakets, ohne das Paket selbst zu installieren? (Rhel / Fedora)


17

Ich habe eine Reihe von Paketen (* .rpm). Für jedes Paket, das ich ausführen kann, rpm -qRp <package>um die Anforderungen aufzulisten, möchte ich sie jedoch (diese erfordern) installieren, ohne die Pakete selbst zu installieren. Das erfordert, dass alle in aktivierten Repositories leben. Gibt es eine einfache Möglichkeit, dies zu tun, ohne ein eigenes Skript zu schreiben, das rpm -qRp ...beispielsweise die Ausgabe von analysiert?

Ich weiß, dass ich das tun kann, indem ich alles mit require ( yum localinstall) installiere und dann die Originalpakete deinstalliere, aber das Problem ist, dass mein Set Pakete mit Abhängigkeiten und Konflikten zwischen ihnen enthält. Die benötigten Pakete stehen jedoch nicht in Konflikt. Ich müsste mehrere yum localinstall <list>gefolgt von tun yum remove <list>und sicherstellen, dass die Pakete in der Liste nicht in Konflikt stehen.

Ich habe da einen besseren Weg? Ich möchte grundsätzlich so etwas yum-builddep, aber dafür braucht man keine Builds.

Meine Distributionen sind Fedora/RHEL

Antworten:


23

Mit dem yum deplistBefehl können Sie eine Liste der Paketabhängigkeiten erstellen:

$ 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
[...]

Hier finden Sie provider:eine Liste der Pakete:

$ 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

Senden Sie diese Ausgabe an yum install, um die Pakete zu installieren:

$ yum deplist bind | awk '/provider:/ {print $2}' | sort -u |
  xargs yum -y install

1
Vielen Dank. Scheint sogar an RPM-Dateien zu arbeiten. Genau das, wonach ich gesucht habe.
Miroslav Franc

1
Möchte jemand bis zum -1 besitzen? Gibt es etwas, das ich reparieren kann?
Larsks

4

Der beste Weg ist:

yum shell <<EOF
install foo
ts solve
remove foo
run
EOF

... mit deplist / etc. wird meistens funktionieren, kann aber nicht garantiert das exakt gleiche Ergebnis erzielen.


yum -ybenötigt werden.
7.

-y ist aus einigen Gründen nicht die Standardeinstellung, und die wichtigen ändern sich nicht durch die oben genannten.
James Antill
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.