Pasar paquetes de una máquina a otra sin Internet

Imagina que quieres instalar un programa en una máquina que no tiene conexión a Internet. ¿Cómo hacerlo?

Bueno, es más o menos simple instalarlo si tienes otra máquina con Internet y te lo instalas en ésta última o te lo instalaste. Para que todo esto funcione bien (aunque siempre hay casos en lo que no funciona y nunca te explicas por qué), lo mejor sería que las dos máquinas tuvieran la misma versión de Ubuntu, por que sino, posiblemente tendremos problemas con las dependencias de paquetes, o que en la máquina sin Internet está instalada no se qué versión anterior y te da problemas con otro paquete, o a saber qué (os cuento esto por que intenté el otro día instalar la nueva versión de Python en un Ubuntu Hoary -- sí, es muy antiguo pero es una máquina del curro que no se puede tocar mucho-- y todavía no lo he conseguido).

Total, vayamos al lío. Cada vez que nosotros nos instalamos un programa o utilidad con apt-get install o aptitude install, lo primero que hace el comando es descargarse el paquete.deb y después lo instala. Es exactamente igual que si nos descargamos el paquete, por ejemplo de aquí, y luego lo instalamos con dpkg -i.

Antes de continuar, decir que esta información la he obtenido, entre otros muchos sitios de Ubuntu Life y Entre tuxes y pepinos.

Total, que nosotros cada vez que nos instalamos un paquete, una aplicación o lo que sea usando apt-get install o aptitude install o synaptic, el paquete que nos descargamos se guarda en /var/cache/apt/archives/, así que ahora cogemos de ahí el paquete que queramos lo guardamos en un pendrive y lo llevamos a la otra máquina; hacemos:

$ dpkg -i <el_paquete> 

y listo.

Pero si lo quieres hacer más profesional lo podemos hacer así:

Copiamos los paquetes que queremos a una carpeta:

$ cd  /home 

$ mkdir paquetes 

$ cp /var/cache/apt/archives/<paquetes_deb> /home/paquetes 

ahora nos informamos de cada uno de ellos de que depende por si queremos descargarnos sus dependencias por si acaso (por ejemplo de esta página):

$ aptitude show <paquete_a_informarnos> 

y aparecerá algo así:

$ aptitude show unrar

Paquete: unrar
Estado: sin instalar
Versión: 1:3.7.3-1~edgy1
Prioridad: opcional
Sección: multiverse/utils
Desarrollador: Martin Meredith <mez@ubuntu.com>
Tamaño sin comprimir: 233k
Depende de: libc6 (>= 2.4-1), libgcc1 (>= 1:4.1.1-12), libstdc++6 (>= 4.1.1-12)
Tiene conflictos con: rar (<= 2.60-1)
Descripción: Unarchiver for .rar files (non-free version)
Unrar can extract files from .rar archives. If you want to create .rar
archives, install package rar.
 
This package is auto-buildable
 
Homepage: http://www.rarlabs.com/

y como verás te dice de qué depende y con qué tiene conflictos. Esto puede ser un poco pesado, sobre todo con paquetes grandes o con versiones distintas en las máquinas, pero es lo que hay.

Luego, una vez que lo tenemos TODO (vaya ilusos que somos, fijo que nos falta siempre alguna cosilla), hacemos lo siguiente:

$ cd /home/

$ dpkg-scanpackages paquetes /dev/null | gzip > paquetes/Packages.gz<

Lo que hacemos con el comando dpkg-scanpackages es leer todos los archivos *.deb que tenemos en el directorio y creamos el archivo Packages.gz con gzip que luego más adelante indicará a la máquina donde lo instalemos que paquetes hay.

Guardamos Packages.gz en el pendrive y lo llevamos al otro ordenador. Lo descomprimimos en algún sitio y editamos /etc/apt/sources.list y añadimos:

deb file:/<ruta_y_nombre_de_donde_hemos_descomprimido>

guardamos,

$ apt-get update

y ahora

$ aptitude install <los_paquetes>

Bueno, parece lioso (incluso puede llegar a serlo) pero espero que os funcione y os sea útil.

Un saludo. 

Published 09 October 2007 11:16 PM by melculebras
Filed under:

Comments

No Comments

Leave a Comment

(required ) 
(required ) 
(optional )
(required ) 

Captcha