¿Cómo desempaquetar, modificar y volver a empaquetar un .deb?
Hoy tuve la necesidad de instalar Brackets, un editor de texto OpenSource desarrollado por Adobe que es muy bueno para el trabajo de FrontEnd, aunque, sigo prefiriendo Visual Studio Code, pero eso es otro cuento.
El punto es que al intentar instalarlo en Ubuntu 18.04 se obtiene un error de dependencia, porque Brackets depende de libcurl3 pero en Ubuntu está la versión libcurl4.
Posiblemente hacer un enlace simbólico de la versión 4 a la versión 3 hubiese resuelto el problema, pero hay un método más elegante y bastante sencillo de solventar esto, que de hecho, podría aplicarse para cualquier otro paquete .deb.
Modificar el .deb
En efecto, la solución es modificar las dependencias del paquete, y para ello tenemos que cambiar los valores en el fichero CONTROL que está dentro de una carpeta llamada DEBIAN, que a su vez está dentro del fichero .deb
Los pasos a ejecutar serían los siguientes:
1.- Descargar el fichero, en este caso Brackets pero puede servir para cualquier otro. 2.- Adentro de la carpeta donde descargamos el fichero ejecutamos este comando:
dpkg-deb -R ./Brackets.Release.1.12.64-bit.deb Brackets
3.- Ahora editamos el fichero que se encuentra dentro de Brackets/DEBIAN/control con nuestro editor favorito y reemplazamos lo que dice:
libcurl3
con libcurl3|libcurl4
4.- Volvemos a construir el paquete ejecutando este comando
dpkg-deb -b Brackets Brackets-fixed.deb
5.- Por último instalamos el paquete
sudo dpkg -i Brackets-fixed.deb
Por supuesto que podemos cambiar el nombre y poner el que queramos. Y con estos comandos podemos desempaquetar y empaquetar cualquier fichero .deb.
Interesante, gracias.
😉 De nada.
Gracias por la información.
Acabo de cambiar a Ubuntu 20.04 y para tener un gitkraken gratis que aún funciona en repositorios privados remotos me ha venido genial.
Me salvaste, justamente andaba como loco buscando tratando de hacer funcionar ésta aplicación. Traté de modificar la dependencia pero cuando lo descomprimía salían solo los archivos que se instalan y nada que mostrara algo de depencias o instrucciones de instalación. Buscando los pasos sobre cómo modificar las dependencias a la primera llegué a éste sitio donde justamente lo explicas con la aplicación que yo estoy modificando por la misma razón.
Hice todos los pasos y funcionaron. Ningún error.
Sin embargo cuando ejecuto Bracket no pasa nada.