Cómo extraer RPM de la base de datos RPM en Red Hat Enterprise Linux


8

¿Hay alguna manera de extraer un RPM instalado de una base de datos RPM en Red Hat Enterprise Linux para reproducir el .rpmarchivo original ?


¿Por qué se modificó este título? Red Hat es el nombre del software, no RedcHat
Ramhound

Respuestas:


7

Si desea guardar una copia del paquete como está instalado actualmente antes de actualizarlo o eliminarlo, use rpm --repackage: guardará los RPM en / var / tmp o / var / spool / repackage o en otro lugar, según su configuración.

De lo contrario, existe rpmrebuild, que hace exactamente lo que pides.

Palabra de precaución: con ninguna de estas herramientas obtienes exactamente lo mismo *.rpmque con la que comenzaste. Cualquier cambio en los archivos instalados que pertenezcan al paquete estará en los RPM generados.


1
Creo que vale la pena tener en cuenta que rpm --repackagese Re-package the files before erasing rpm.org/max-rpm-snapshot/rpm.8.html casi me encontré con este comando a ciegas, pero se veía en los documentos vinculados en primer lugar.
Kevin Meredith

rpm --repackageno parece estar disponible en sistemas más nuevos (p. ej., RHEL 7). rpmrebuildestá disponible en el EPEL para RHEL 7 e hizo el truco para mí.
jayhendren

1

No es posible producir el archivo rpm original, se extrajo y posiblemente se descartó. La base de datos rpm tiene información sobre qué archivos está instalado y sus sumas de verificación, permisos y los scripts posteriores a la publicación:

# verify package contents
rpm -q packagename --verify
# read the scripts that run on installation and removal
rpm -q packagename --scripts

te dará alguna información.

Si desea obtener un rpm del repositorio, le recomiendo usar yumdownloader, del paquete yum-utils.

yum install yum-utils
yumdownloader packagename

Esto descargará las últimas rpm, no la que está instalada actualmente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.