Habrá ocasiones en las que desee extraer datos de los RPM sin instalar el paquete. Por ejemplo, esto puede ser lo apropiado para recuperar la fuente original de un RPM fuente para compilar el software sin la ayuda de las herramientas RPM o para obtener las fuentes u otra información que no sea del programa para utilizarla en un sistema que no sea RPM.
Los ficheros RPM son, en realidad, ficheros cpio
modificados. Por tanto, convertir los ficheros en ficheros cpio
es relativamente fácil, por lo que puede utilizar cpio
para obtener los ficheros individuales. Para realizar esta tarea, necesita utilizar el programa rpm2cpio
que viene con la mayoría de las distribuciones Linux (puede utilizar esta herramienta incluso en las distribuciones que no empleen RPM). Este programa recibe únicamente como único argumento el nombre del fichero RPM y genera como salida el archivo cpio
por la salida estándar. Así pues, si desea crear un sistema de archivos cpio
, debe redireccionar la salida:
$ cpio -i --make-directories < samba-server-3.0.25b-4.5mdv2008.0.cpio
Como alternativa, puede utilizar un pipe para conectar estos dos comandos sin crear un fichero intermedio.
$ rpm2cpio samba-server-3.0.25b-4.5mdv2008.0.src.rpm | cpio -i --make-directories
En ambos casos, el resultado es un extracto del resultado de los ficheros del archivo del directorio actual. en el caso de los paquetes binarios, es probable que se trate de una serie de subdirectorios que reproducen la estructura del directorio raíz de Linux, es decir,
usr
, lib
, etc
y demás, aunque los directorios que se incluyan exactamente dependen del paquete. Para un paquete fuente, el resultado del proceso de extracción, probablemente, sea un tarball (son archivos comprimidos que terminan en “.tar.gz
” o “.tar
” o “.tar.bz2
″) del código fuente, un fichero .spec
(que contiene información que RPM utiliza para crear el paquete) y, quizá, algunos ficheros de parches.
TRUCO: Cuando extraiga datos de un RPM utilizando rpm2cpio
y cpio
, cree un subdirectorio contenedor y extraiga después los datos en dicho subdirectorio. Si sigue esta costumbre, encontrará siempre todos los ficheros. Si extrae los ficheros en su directorio home, puede que algunos de estos se pierdan entre sus otros ficheros. Si extrae ficheros como root en el directorio raíz (/), es probable que estos sobre-escriban algunos ficheros que desee conservar.
Otra opción para extraer datos de RPM es emplear alien
, que comentaremos más adelante. Este programa puede convertir un RPM en un paquete Debian o un tarball.