¿Cómo descargar paquetes DEB con dependencias localmente?
El poder instalar aplicaciones en Ubuntu, Linux Mint asi como en sus derivados existen diversos métodos. El más usual y conocido es con ayuda del centro de software de la distribución en el cual podemos encontrar una gran cantidad de aplicaciones listas para poder ser instaladas.
Otro de los métodos usuales que solemos ocupar es con ayuda de la terminal y otro de los más concurridos es mediante la instalación desde un paquete deb.
Generalmente cuando instalamos un paquete deb, no solemos revisar las dependencias de este, pues solamente es el puro paquete y no incluye todos aquellos paquetes o librerías que necesita para su correcto funcionamiento.
Primer método
Usando este método, podemos descargar paquetes de un sistema e instalarlos más adelante en el mismo sistema o en cualquier otro, que no tenga conexión a Internet.
También es posible descargar paquetes para diferentes sistemas de arquitectura. Por ejemplo, puede descargar los paquetes de 32 bits desde un sistema de 64 bits y viceversa.
¿Cómo descargar paquetes deb con dependencias localmente?
Para descargar localmente paquetes con dependencias en Debian, Ubuntu y derivados, puede uno de los métodos siguientes.
Este es el método más simple y directo.
Para ello basta con ejecutar el siguiente comando para descargar un paquete con todas las dependencias sin instalarlas:
sudo apt-get install --download-only nombre-del-paquete
Todos los archivos descargados se guardarán en la carpeta /var/cache/apt/archives.
Ahora simplemente podemos proceder a copiar toda la carpeta de caché en cualquier pendrive para posteriormente hacer uso de esos paquetes descargados.
Para instalar los paquetes descargados, basta con dirigirnos a la copia que realizamos e instalarlo con el siguiente comando:
sudo dpkg -i *
Ahora el problema de utilizar este método, aunque parece sencillo, es que la carpeta de cache no solo almacena el paquete que acabas de descargar con sus dependencias, si no que contiene muchos más paquetes que han sido instalados en el sistema.
Por lo que debes de realizar una limpieza del cache si no quieres cargar con paquetes innecesarios. Aun que para este caso podemos utilizar otro método.
Segundo método
Otra forma de poder hacer esto, es primero bajar las dependencias del programa que necesitamos.
Por lo que, para poder conocer la lista de todas las dependencias de un paquete, debemos de ejecutar el siguiente comando
sudo apt-cache depends nombre-del-paquete
La salida será más o menos así:
nombre-del-paquete PreDepends: ….. Depends: xxx Depends: xxxx Conflicts: Breaks: update-manager-core Suggests: xxxx Suggests: xxxx Replaces: xxx
Ahora, simplemente debemos de descargar el paquete con sus dependencias. Esto lo podemos hacer con el siguiente comando:
for i in $(apt-cache depends python | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/''/''/); do sudo apt-get download $i 2>>errors.txt; done
El comando anterior descargar el paquete junto con todas las dependencias necesarias y guardarlas en el directorio de trabajo actual.
Este comando también guardará cualquier error en el archivo errors.txt el cual podemos visualizar en caso de tener un problema y conocer el origen del conflicto.
¿Cómo descargar paquetes por arquitectura?
Ahora como fue mencionado anteriormente, es posible descargar paquetes de cualquier tipo de arquitectura, pero dado que para los que son usuarios de 64 bits es necesario añadir el soporte para la arquitectura de 32 bits.
Para ello primero, debemos habilitar la arquitectura que deseen en su sistema usando el comando:
sudo dpkg --add-architecture i386*
También podemos descargar paquetes para ARM así como habilitar la arquitectura en nuestro sistema, solo tenemos que habilitar la arquitectura con:
sudo dpkg --add-architecture armhf
De igual forma podemos comprobar que arquitecturas tenemos disponibles en nuestro sistema con:
sudo dpkg --print-foreign-architectures
Después de habilitar la arquitectura de su elección, deben de ejecutar el siguiente comando para descargar paquetes relacionados con la arquitectura específica.
for i in $(apt-cache depends python:i386 | grep -E 'Depends|Recommends|Suggests' | cut -d ':' -f 2,3 | sed -e s/''/''/); do sudo apt-get download $i 2>>errors.txt; done
Hecha la descarga de los paquetes junto con sus dependencias, ahora, simplemente basta con copiarlos a su unidad USB e instalar los paquetes en cualquier sistema.
El artículo ¿Cómo descargar paquetes DEB con dependencias localmente? ha sido originalmente publicado en Ubunlog.