Crear un repositorio local de paquetes

Cualquier usuario novel de gnu/linux sabe de la dificultad de instalar programas en ordenadores que no tienen conexión a internet debido al la cuestión de las dependencias. Aquí voy a explicar un método que nos permitirá almacenar los programas (y sus dependencias) que nos bajemos de internet (bien desde la consola o desde synaptic) y generar una base de datos que luego nos permita instalarlos sin dificultad en cualquier otro ordenador donde tengamos la misma versión de ubuntu. Supondremos solamente que la carpeta donde deseamos guardarlos estará situada en nuestro directorio personal (home/personal) y que allí crearemos una carpeta que se llamará mirepositorio.

Pues bien, cuando instalamos cualquier paquete desde consola (con sudo apt-get install) o desde synaptic, los paquetes y sus dependencias quedan almacenados en el directorio /var/cache/apt/archives. Lo que debemos hacer, toda vez que instalemos algo, es copiar los archivos bajados y situados en /var/cache/apt/archives a la carpeta mirepositorio. Si, tras esto, queremos dejar la cache limpia, bastará que tecleemos desde consola sudo apt-get clean. Esto borrará de nuestra caché todos los archivos bajados. Conviene asegurarse de haber copiado previamente todo a nuestro repositorio.

Una vez que tengamos todos los paquetes que consideremos imprescindibles o importantes en mirepositorio, sólo nos queda generar una base de datos de los mismos. Para ello, deberemos situarnos en el directorio que contiene a mirepositoro, es decir, en /home/personal y, desde consola, teclear la orden

dpkg-scanpackages mirepositorio /dev/null | gzip -9c > mirepositorio/Packages.gz

Esto generará un fichero dentro de nuestro repositorio denominado Packages.gz que contiene la lista de paquetes disponibles y que informará de ello a nuestro segundo ordenador. Una vez generado, bastará con copiar esa carpeta en cualquier dispositivo usb o quemarla en un CD y llevárnosla al segundo ordenador.

Finalmente, deberemos informar a nuestro segundo ordenador dónde están esos paquetes que queremos instalar en él. Para ello modificaremos el archivo sources.list con la orden (desde consola)

sudo gedit /etc/apt/sources.list

a) Si nuestro ordenador monta el usb en /media/usbdisk , añadiremos la entrada

deb file:/media/usbdisk/ mirepositorio/

b) Si, por el contrario, hemos grabado el repositorio en un CD,

deb file:/media/cdrom/ mirepositorio/

Y guardamos el fichero sources.list con las modificaciones realizadas.
Ahora debemos actualizar la base de datos en el nuevo ordenador. Para ello tecleamos:

sudo apt-get update

Y ya está. Ahora, bien desde consola, bien desde synaptic, ya podemos instalar los nuevos paquetes.

Nota:
(1) Si no queremos estar tecleando la orden tan larga cada vez que añadimos nuevos paquetes a nuestro repositorio, podemos crear un script que simplifique las cosas. Podemos llamar al script, por ejemplo, actualizar. Entonces, crearemos un fichero en /home/personal que se llame actualizar.sh y pegamos lo siguiente:

#!/bin/bash
dpkg-scanpackages mirepositorio /dev/null | gzip -9c > mirepositorio/Packages.gz

Con ello, cada vez que queramos actualizar por haber incluido nuevos paquetes, lo único que tendremos que hacer es teclear (desde consola)

sh actualizar.sh

Si, además, queremos prevenir borrado accidental del fichero, podemos convertirlo en oculto añadiendo un punto al inicio del nombre, con lo que tendremos que teclear
sh .actualizar.sh

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s