Tengo un rpm y quiero tratarlo como un tarball. Quiero extraer el contenido en un directorio para poder inspeccionar el contenido. Estoy familiarizado con los comandos de consulta de un paquete desinstalado. No quiero simplemente una lista de los contenidos de las rpm. es decir
$ rpm -qpl foo.rpm
Quiero inspeccionar el contenido de varios archivos contenidos en las rpm. No quiero instalar las rpm. También estoy al tanto de la capacidad de rpms para hacer modificaciones adicionales en las secciones% post, y cómo verificarlas. es decir
$ rpm -qp --scripts foo.rpm
Sin embargo, en este caso eso no me preocupa.
linux
package
rpm
system-administration
Jeff Sheffield
fuente
fuente
Para referencia: los argumentos de cpio son
Encontré la respuesta aquí: la respuesta de Lontar
fuente
Para aquellos que no tienen rpm2cpio, aquí está el antiguo script rpm2cpio.sh que extrae la carga de un paquete * .rpm.
Reubicado para la posteridad ... y la próxima generación.
Invocar así: ./rpm2cpio.sh .rpm | cpio -dimv
fuente
A veces puede encontrar un problema con el archivo RPM intermedio:
Eso significa que podría estar empaquetado, en estos días es la compresión LZMA2 como de costumbre, por
xz
:de lo contrario, podrías probar:
fuente
rpm2cpio <file>.rpm | bsdtar -xf -
(no cpio) para que funcione.gunzip
lugar dexz
olzma
que funcionó bien.La mayoría de las distribuciones han instalado la aplicación GUI file-roller que desempaqueta tar, zip, rpm y muchos más.
Esto extraerá el contenido en el directorio actual.
fuente
7-zip comprende la mayoría de los tipos de archivos, incluidos rpm y el cpio incluido.
fuente
¡Simplemente puedes hacerlo
tar -xvf <rpm file>
también!fuente
tar
cuales se usalibarchive
debajo del capó.bsdtar
. Homebrew en Mac se vinculatar
de forma predeterminada, pero en otros sistemas operativostar
significa GNU tar.El poderoso administrador de archivos basado en texto mc (Midnight Commander, recordando vagamente al Norton Commander de los viejos tiempos de DOS) tiene la capacidad incorporada de inspeccionar y desempaquetar archivos .rpm y .rpms, solo "abre" el archivo .rpm (s) dentro de mc y seleccione
CONTENTS.cpio
: para un rpm obtiene acceso al árbol de instalación, para un rpms obtiene acceso al archivo .spec y todos los paquetes fuente.fuente
Para depurar / inspeccionar sus rpm, sugiero usar redline, que es un programa de Java
Uso:
Descargar: https://github.com/craigwblake/redline/releases
fuente
En NixOS, hay
rpmextract
. Es una envoltura alrededor de rpm2cpio, exactamente como quería @Alan Evangelista. https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/archivers/rpmextractfuente
Al menos en OpenSuse, el
unrpm
comando viene con elbuild
paquete.En un directorio adecuado (porque esta es una bomba de archivo):
fuente
Copie el archivo .rpm en una carpeta separada y luego ejecute el siguiente comando $ yourfile.rpm | cpio -idmv
fuente
La prueba de "DESCOMPRESIÓN" falla en CygWin, una de las plataformas más útiles para ello, debido a que la comprobación "grep" de "xz" distingue entre mayúsculas y minúsculas. El resultado de la comprobación "COMPRESIÓN:" es:
Simplemente reemplazar 'grep -q' por 'grep -q -i' en todas partes parece resolver bien el problema.
He hecho algunas actualizaciones, particularmente agregando algunos comentarios y usando "caso" en lugar de "apiladas" declaraciones, e incluí esa solución a continuación
fuente
7-Zip es capaz de extraer el contenido. Funciona de la misma manera que funciona un archivo tar.gz. Un archivo comprimido dentro de un archivo comprimido.
En Windows 7 Pro con 7-Zip instalado:
Haga clic derecho en el archivo rpm. Pase el mouse sobre 7-Zip en el menú contextual. Seleccione extraer a "nombre de archivo".
Ingrese en la carpeta de nombre de archivo.
Haga clic derecho en el archivo cpio. Pase el mouse sobre 7-Zip en el menú contextual. Seleccione extraer a "nombre de archivo".
Estás listo. La carpeta con "nombre de archivo" contiene el contenido extraído para la inspección.
Sé que ustedes, chicos de Linux, desprecian que las cosas se hagan fáciles, pero a la larga, si tienen que pasar tiempo buscando una solución a un problema simple como este; esa ineficiencia te está costando dinero.
Dado que ustedes, chicos de Linux, desprecian la simplicidad eficiente, dudo mucho que la versión Linux de 7-Zip haga lo mismo exactamente de la misma manera.
¿Por qué hacerlo fácil cuando puedes hacer que sea estúpidamente difícil y pretender ser un genio al mismo tiempo?
Para ser claro; No soy un fanático de Windows. De hecho, estoy buscando mudarme a Linux. Simplemente no pude resistir la oportunidad de frotar lo que los desarrolladores de Windows verían en sus caras como sentido común, las mejores prácticas de desarrollador.
Solo alégrate de que sea yo quien publique esto y no tengas a Mark Harmon parado a tu lado; El agente especial Leroy Jethro Gibbs te habría dado una bofetada por no usar tu cabeza.
No sé qué regla de Gibbs es, pero la regla es: no te hagas las cosas más difíciles de lo que tienen que ser.
Ahora podemos ver quién necesita tomarse unas vacaciones. ¡Cuídate!
fuente