2.1.3.- Extraer datos de los RPM

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

tar-gzEn 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.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s