Cómo instalar las dependencias de un paquete rpm sin necesidad de instalar el paquete en sí? (Rhel / fedora)

18

Tengo un conjunto de paquetes (* .rpm). Para cada paquete que puedo hacer rpm -qRp <package>para enumerar los requisitos, pero me gustaría instalarlos (esos requisitos) sin instalar los paquetes. El requiere que todos vivan en repositorios habilitados. ¿Hay alguna forma fácil de hacer esto sin tener que escribir mi propio guión que analizan la salida de rpm -qRp ...por ejemplo.

Sé que podría hacerlo mediante la instalación requiere todo con ( yum localinstall) y luego desinstalar los paquetes originales, pero el problema es que mi grupo se compone de paquetes con ambas dependencias y conflictos entre ellos. Sin embargo, los paquetes requeridos no entran en conflicto. Tendría que hacer varios yum localinstall <list>seguidos yum remove <list>y asegurarme de que los paquetes en la lista no entren en conflicto.

Yo hay una mejor manera? Básicamente me gustaría algo así yum-builddep, pero requiere, no requisitos de compilación.

Mis distros son Fedora/RHEL

Miroslav Franc
fuente

Respuestas:

24

Puede utilizar el yum deplistcomando para generar una lista de dependencias de paquetes:

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

Coge las provider:líneas de este para obtener una lista de paquetes:

$ 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

Enviar esta salida a yum installinstalar los paquetes:

$ yum deplist bind | awk '/provider:/ {print $2}' | sort -u |
  xargs yum -y install
larsks
fuente
1
Gracias. Parece estar funcionando incluso en archivos rpm. Exactamente lo que estaba buscando.
Miroslav Franco
1
Alguien quiere poseer hasta el -1? ¿Hay algo que pueda arreglar?
larsks
4

La mejor manera es:

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

... usando deplist / etc. trabajará sobre todo, pero no está garantizada para obtener el mismo resultado.

James Antill
fuente
yum -ypodría ser necesaria.
caot
-y no es el predeterminado por algunas razones, y las importantes no cambian por lo anterior.
James Antill