El contenido del archivo de un RPM generalmente está instalado. Esto significa que los archivos RPM se copian en sus ubicaciones adecuadas en el sistema de archivos para que puedan usarse. Por ejemplo, la instalación del RPM binario de bash coloca el archivo “/bin/bash” en su ubicación esperada. Para instalar un RPM, use el botón “-i ” o “-U ” cambiar:
$ rpm -ivh bash-3.1-16.1.x86_64.rpm
Lista de archivos dentro de un paquete RPM
Puede obtener una lista de los archivos dentro de un RPM realizando una consulta de RPM y agregando "-p ” cambiar:
$ rpm -q -l -p bash-3.1-16.1.x86_64.rpm /bin/bash /bin/sh /etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc ...
Cómo extraer archivos de un archivo de paquete RPM
A veces, es posible que desee obtener el contenido o un solo archivo de un paquete RPM. Para hacer eso, puede usar el rpm2cpio herramienta de conversión La herramienta rpm2cpio extrae el contenido de un RPM fuente o binario en forma de archivo CPIO, no TAR. La salida rpm2cpio se escribe en la salida estándar y generalmente se canaliza al comando cpio.
1. Listado de archivos en un archivo de paquete
En este ejemplo, usamos la -t Opción para indicar a cpio que produzca una "tabla de contenido" del archivo creado por rpm2cpio. Esto puede hacer que sea mucho más fácil obtener el nombre de archivo y la ruta correctos cuando desee extraer un archivo.
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -t
Tenga en cuenta que el comando "rpm -qpl" muestra el nombre de archivo como la ruta absoluta "/bin/bash", pero la salida "cpio -t" usa la ruta relativa "./bin/bash" en su lugar. Esto es muy útil porque puede usar rpm2cpio como un usuario normal para extraer archivos que normalmente se instalarían en directorios privilegiados.
El siguiente ejemplo muestra cómo aparece la salida:
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -t ./bin/bash ./bin/sh ./etc/skel/.bash_logout ./etc/skel/.bash_profile ./etc/skel/.bashrc ... 10510 blocks
2. Extraer uno o más archivos de un archivo de paquete
Use rpm2cpio para generar el archivo CPIO y use el interruptor cpio "-i" para extraer los archivos deseados:
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -ivd ./bin/bash ./bin/bash 10510 blocks
$ ls -l /home/user/bin/bash total 744 -rwxr-xr-x 1 user user 753720 March 1 13:10 bash
En este caso, las opciones “-i “, “
-i – Extraiga uno o más archivos de un archivo. Los nombres de archivo solicitados deben coincidir exactamente con la tabla de contenido "cpio -t" o con un patrón de comodín similar a una concha. Si el archivo de destino ya existe, cpio se negará a sobrescribirlo a menos que se agregue el interruptor "-u" al comando.
-d – Cree cualquier directorio que preceda al nombre de archivo especificado en el comando cpio. Si los directorios ya existen, se puede omitir el interruptor "-d", pero no hace daño si siempre se especifica.
-v – Mostrar los nombres de los archivos procesados, junto con el tamaño del archivo de almacenamiento CPIO, en bloques de 512 bytes. Tenga en cuenta que este tamaño no es el tamaño del paquete RPM, que cpio nunca ve directamente.
Si no se proporciona ningún nombre de archivo, se extraerán todos los archivos RPM.