GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo extraer el paquete RPM sin instalarlo

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 “, “-v “, y “-d ” cpio directo a:
-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.


Linux
  1. Cómo probar un paquete sin instalarlo en Linux

  2. Comandos RPM

  3. RPM:error de instalación del paquete:cpio:error de lectura

  4. Cómo verificar la integridad del paquete rpm en Linux

  5. ¿Cómo obtener la lista de dependencias del paquete RPM no instalado?

Cómo instalar RPM en CentOS

Cómo instalar paquetes RPM en CentOS 8

Cómo crear un paquete RPM a partir de un Tarball

Cómo descargar paquetes usando APT sin instalarlos

Cómo ver y extraer archivos de paquetes rpm, deb, depot y msi

Cómo usar "yum downloadonly" para descargar un paquete sin instalarlo