Esta breve guía presenta una utilidad útil llamada dpkg-repack
, que se utiliza para recrear paquetes binarios de Debian que ya están instalados en un sistema basado en Debian.
¿Qué es dpkg-repack?
Imagina este escenario. Ha instalado algunos paquetes en su sistema basado en Debian. Y desea instalar los mismos paquetes en otro sistema. Pero perdiste los archivos binarios, es decir, los archivos deb. ¿Los volverías a descargar desde su sitio web oficial o repositorio?
¿Qué pasa si la versión particular de un paquete específico ya no está disponible en otro lugar? ¡No hay problema! Como ya están instalados en su sistema, puede recrear fácilmente el .deb
archivos Saluda a dpkg-repack
!
El dpkg-repack
es una herramienta de archivado de paquetes Debian de línea de comandos para recrear paquetes binarios de Debian que ya están instalados en su sistema.
En pocas palabras, dpkg-repack
La utilidad puede crear un .deb
archivo de un paquete de Debian que ya está instalado en su sistema.
El dpkg-repack
utilidad puede ser útil en muchas situaciones en las que desea,
- recrear
.deb
archivos de paquetes debian instalados existentes, - copie fácilmente paquetes de un sistema a otro,
- guardar el estado actual de un paquete antes de actualizarlo,
- haga una copia de seguridad de una versión específica de un paquete para uso futuro,
- guardar paquetes específicos que ya no están disponibles para descargar.
Instalar dpkg-repack en Debian, Ubuntu y derivados
El dpkg-repack
está disponible en los repositorios predeterminados de Debian, Ubuntu y sus variantes. Para instalar dpkg-repack
, simplemente ejecute el siguiente comando:
$ sudo apt install dpkg-repack
Recrear paquetes binarios de Debian con dpkg-repack
1. A los efectos de esta guía, utilicemos la aplicación Microsoft Teams que instalé hace un tiempo en mi escritorio de Ubuntu.
$ dpkg -l | grep teams
Salida de muestra:
ii teams 1.3.00.5153 amd64 Microsoft Teams for Linux is your chat-centered workspace in Office 365.
Ya no tengo teams.deb
expediente. Lo eliminé justo después de instalar la aplicación Microsoft Teams. Puedo ir a la página de descarga oficial y descargarlo de nuevo. Pero, ¿por qué molestarse en descargarlo una y otra vez? Ahora puedo simplemente recrear el teams.deb
archivo usando dpkg-repack.
2. Para crear teams.deb
archivo del paquete de equipos ya instalado con dpkg-repack
utilidad, ejecute:
$ dpkg-repack teams
Salida de muestra:
dpkg-deb: building package 'teams' in './teams_1.3.00.5153_amd64.deb'.

Como puede ver, el comando anterior recreó el "teams_1.3.00.5153_amd64.deb'"
archivo del paquete Teams que ya está instalado en mi escritorio Ubuntu. El archivo deb recién creado se guardará en el directorio de trabajo actual.
Del mismo modo, puede volver a convertir cualquier paquete Debian instalado a .deb
paquetes usando dpkg-repack
utilidad.
3. También es posible recrear varios archivos deb separados por espacios:
$ dpkg-repack <package1> <package2> <package3>
4. Si no puede reconstruir el archivo deb debido a problemas de permisos, intente desde fakeroot entorno como el siguiente:
$ fakeroot -u dpkg-repack teams
Una característica interesante de la utilidad dpkg-repack es que si se han realizado cambios en el paquete mientras estaba desempaquetado (es decir, archivos en /etc modificados), el nuevo paquete heredará los cambios.
Ver el contenido del archivo deb
$ dpkg --contents teams_1.3.00.5153_amd64.deb
Salida de muestra:
drwxr-xr-x root/root 0 2020-05-26 15:15 ./ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/bin/ -rwxr-xr-x root/root 286 2020-02-20 16:46 ./usr/bin/teams drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/ . . . drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/teams/swiftshader/ -rwxr-xr-x root/root 286264 2020-02-20 16:46 ./usr/share/teams/swiftshader/libEGL.so -rwxr-xr-x root/root 2677296 2020-02-20 16:46 ./usr/share/teams/swiftshader/libGLESv2.so -rwxr-xr-x root/root 114964776 2020-02-20 16:46 ./usr/share/teams/teams -rw-r--r-- root/root 1040912 2020-02-20 16:46 ./usr/share/teams/v8_context_snapshot.bin

$ sudo dpkg -i <package-name>
Paso 3: Tenga en cuenta que todavía necesita descargar las dependencias. Para instalar las dependencias, ejecute:
$ sudo apt-get -f install
Alternativamente, puede encontrar las dependencias del paquete como se describe en el siguiente enlace:
- Cómo enumerar las dependencias de un paquete en Linux
Y luego recrearlos todos usando dpkg-repack
como se describe arriba.
Vim
paquete a la nueva versión disponible. Si la nueva versión no funciona como se esperaba, simplemente puede retroceder a la versión anterior que creó anteriormente usando dpkg-repack
.
Para obtener más detalles, consulte las páginas man:
$ man dpkg-repack
Lectura relacionada:
- Cómo compilar paquetes Debian desde el código fuente
- Cómo compilar paquetes desde el origen mediante CheckInstall
- Cómo convertir paquetes de Linux con Alien