Pregunta: ¿Cómo puedo ver o extraer los archivos que están incluidos dentro de los paquetes de varios sistemas operativos? Por ejemplo, me gustaría saber cómo ver (y extraer) el contenido de un archivo rpm, deb o depot o msi.
Respuesta: Puedes usar herramientas como rpm, rpm2cpio, ar, dpkg, tar, swlist, swcopy, lessmsi como se explica a continuación.
1. Paquete RPM en Redhat / CentOS / Fedora
Listar archivos de un paquete RPM usando rpm -qlp
RPM significa administrador de paquetes de Red Hat. El siguiente ejemplo muestra cómo ver los archivos disponibles en un paquete RPM sin extraer o instalar el paquete rpm.
1 2 3 4 5 6 7 8 9 10 |
$ rpm -qlp ovpc-2.1.10.rpm /usr/src/ovpc/-5.10.0 /usr/src/ovpc/ovpc-2.1.10/examples /usr/src/ovpc/ovpc-2.1.10/examples/bin /usr/src/ovpc/ovpc-2.1.10/examples/lib /usr/src/ovpc/ovpc-2.1.10/examples/test . . . /usr/src/ovpc/ovpc-2.1.10/pcs |
Explicación del comando: rpm -qlp ovpc-2.1.10.rpm
rpm – comando
q – consulta el archivo rpm
l – enumera los archivos en el paquete
p: especifica el nombre del paquete
Extrayendo los archivos de un paquete RPM usando rpm2cpio y cpio
RPM es una especie de archivo cpio. Primero, debes convertir el archivo rpm a cpio usando el comando rpm2cpio. Luego, usa el comando cpio para extraer los documentos del archivo como se muestra a continuación.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ rpm2cpio ovpc-2.1.10.rpm | cpio -idmv ./usr/src/ovpc/-5.10.0 ./usr/src/ovpc/ovpc-2.1.10/examples ./usr/src/ovpc/ovpc-2.1.10/examples/bin ./usr/src/ovpc/ovpc-2.1.10/examples/lib ./usr/src/ovpc/ovpc-2.1.10/examples/test . . . ./usr/src/ovpc/ovpc-2.1.10/pcs $ ls . usr |
2. Paquete Deb en Debian
deb es la extensión del formato de paquetes de software de Debian. *.deb también se usa en otras distribuciones basadas en Debian. (por ejemplo: Ubuntu usa *.deb)
Listar los archivos de un paquete debian usando dpkg -c
dpkg es el administrador de paquetes para Debian. Entonces, utilizando el comando dpkg, puedes enumerar y extraer los paquetes, como se muestra a continuación.
Para ver el contenido del archivo *.deb:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ dpkg -c ovpc_1.06.94-3_i386.deb dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/ dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/ dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/lib/ dr-xr-xr-x root/root 0 2010-02-25 10:48 ./ovpc/pkg/lib/header/ -r-xr-xr-x root/root 130 2009-10-29 17:06 ./ovpc/pkg/lib/header/libov.so . . . -r-xr-xr-x root/root 131 2009-10-29 17:06 ./ovpc/pkg/etc/conf dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/etc/conf/log.conf |
Extraer los archivos de un paquete Debian usando dpkg -x
Usa dpkg -x para extraer los archivos de un paquete deb como se muestra a continuación.
1 2 3 |
$ dpkg -x ovpc_1.06.94-3_i386.deb /tmp/ov $ ls /tmp/ov ovpc |
Los archivos DEB son archivos ar, que siempre contienen los tres archivos: debian-binary, control.tar.gz y data.tar.gz. Podemos usar el comando ar y el comando tar para extraer y ver los archivos del paquete deb, como se muestra a continuación.
Primero, extrae el contenido del archivo *.deb usando el comando ar.
1 2 3 4 5 |
$ ar -vx ovpc_1.06.94-3_i386.deb x - debian-binary x - control.tar.gz x - data.tar.gz $ |
Como siguiente paso, debes extraer el contenido del archivo data.tar.gz como se muestra a continuación.
1 2 3 4 5 6 7 8 9 10 11 |
$ tar -xvzf data.tar.gz ./ ./ovpc/ ./ovpc/pkg/ ./ovpc/pkg/lib/ ./ovpc/pkg/lib/header/ ./ovpc/pkg/lib/header/libov.so . . ./ovpc/pkg/etc/conf ./ovpc/pkg/etc/conf/log.con |
3. Paquete Depot en HP-UX
Listar los archivos de un paquete depot usando tar y swlist
El archivo DEPOT es un archivo de software HP-UX identificado como depósito del catálogo de distribuidores. Los depósitos de HP-UX son solo un archivo tar, con información adicional como se muestra a continuación.
1 2 3 4 5 6 7 8 |
$ tar -tf ovcsw_3672.depot OcswServer/MGR/etc/ OcswServer/MGR/etc/opt/ OcswServer/MGR/etc/opt/OV/ OcswServer/MGR/etc/opt/OV/share/ OcswServer/MGR/etc/opt/OV/share/conf/ OcswServer/MGR/etc/opt/OV/share/conf/OpC/ OcswServer/MGR/etc/opt/OV/share/conf/OpC/opcctrlovw/ |
swlist es un comando de HP-UX que se utiliza para mostrar la información sobre el software. Para ver el contenido del paquete depot como se muestra a continuación, puedes utilizar el comando swlist.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ swlist -l file -s /root/ovcsw_3672.depot # Initializing... # Contacting target "osgsw"... # # Target: osgsw:/root/ovcsw_3672.depot # # OcswServer 8.50.000 Ocsw Server product # OcswServer.MGR 9.00.140 Ocs Server Ovw /etc /etc/opt /etc/opt/OV /etc/opt/OV/share /etc/opt/OV/share/conf /etc/opt/OV/share/conf/OpC |
Extraer los archivos de un paquete depot utilizando swcopy
El comando Swcopy copia o combina las selecciones de software de una fuente de software en una o más selecciones de destino del almacén de software. Con la opción de descomprimir en swcopy, puedes extraer los archivos de un paquete de software de depot.
1 2 3 4 |
$ swcopy -x uncompress_files=true -x enforce_dependencies=false -s /root/ovcsw_3672.depot \* @ /root/extracted/ $ ls /root/extracted MGR catalog osmsw.log $ |
Dado que los archivos depot almacenan archivos tar, puedes extraerlos mediante la extracción de tar normal como se muestra a continuación.
1 |
$ tar -xvf filename |
4. MSI en Windows
El instalador de Microsoft es un motor para la instalación, mantenimiento y eliminación de software en sistemas Windows.
Listar los archivos de un paquete MSI usando lessmsi
La utilidad llamada lessmsi.exe se usa para ver los archivos de los paquetes msi sin instalar. La misma utilidad también se utiliza para extraer el paquete msi. Selecciona el msi en el que deseas ver el contenido. lessmsi enumerará los archivos disponibles en msi.
Extraer los archivos de un paquete MSI usando msiexec
La herramienta de instalación de Windows (Msiexec.exe) se utiliza para extraer los archivos del paquete MSI. Puedes abrir un paquete MSI en el modo de instalación “Administrador”, donde puedes extraer los archivos sin realizar la instalación como se muestra a continuación.
1 |
C:\>msiexec /a ovcsw_3672.msi /qb TARGETDIR="C:\ovcsw" |