El propósito de este artículo es re-distribuir una obra que lleva ya más de tres años y que fue ideada para crear un repositorio de paquetes deb para Ubuntu 5.04 Hoary Hedgehog, de manera tal que pudiese transportarle en un CD para actualizar una máquina sin conexión a la Internet. La creación del CD cae fuera del ámbito de este artículo, aunque sí se dan las instrucciones de cómo hacerlo.
Al principio solo me dediqué a crear un script que emulara la forma en la cual los archivos se almacenan en el CD oficial. Y aunque funcionó para el objetivo trazado, el problema se presentó al tratar de utilizarle para instalar un nuevo equipo que sí poseía conexión, y debido a que los paquetes no estaban autenticados por el sistema, este mismo sistema prefería descargarles desde la Internet. El siguiente paso fue añadir estas firmas.
Posteriormente me dediqué a buscar más información respecto a la manera de crear esto, y encontré que las herramientas necesarias se instalaban con el paquete dpkg-dev, utilizando la siguiente línea para ello:
Finalmente como recomendación para crear un repositorio más o menos válido, por ejemplo para reinstalar el SO, es necesario mantener un protocolo desde el mismo momento en el que se instala una nueva máquina, que llamaremos anfitrión y será la indicada para obtener las actualizaciones de nuestro equipo.
Consideremos el uso de un cyber-café o una sala de laboratorio computacional de una escuela, donde, para evitar la actualización vía Internet de todos los equipos, solo nos conectamos a un equipo local o a través de CDs.
Durante la preparación de este artículo se utiliza Ubuntu 9.04 Jaunty Jackalope para efectuar las pruebas, aunque me imagino funciona para todas las versiones.
Lo primero que necesitarás es descargar los paquetes que requiere tu repositorio. La mejor manera de realizar esto es, una vez instalado el sistema, actualizarle con Synaptic o mediante los comandos:
Una vez hecho esto puedes mover los paquetes que has descargado hasta el directorio pool y modificar los permisos para así poder utilizar los scripts.
Posteriormente debemos extraer los scripts del archivo descargado.
Ahora nos queda ordenar los paquetes, para ello solo basta ejecutar el script organizar.sh desde el directorio pool.
Una vez que termine la ejecución puedes eliminar los paquetes que se encuentren en este directorio, ya que, probablemente, hay uno más actualizado dentro de uno de los directorios. SOLO SI NO SE PRESENTAN ERRORES EN EL SCRIPT ANTERIOR (probablemente debido a la falta del paquete dpkg-dev)
Ahora ya ordenado los paquetes se procede a ingresar la información necesaria para crear la estructura final del repositorio.
Importante: Antes de continuar debe generar una firma digital que permitirá firmar su repositorio y posteriormente exportar la clave pública para añadir a los repositorios autenticados. Este paso solo es necesario realizarlo una sola vez.
Ahora puede crear la estructura necesaria para su repositorio ejecutando el script crearcd.sh desde el directorio Repositorio.
Finalizado el script se presentan dos líneas necesarias para utilizar el repositorio:
Nótese que la imagen quedará dentro del directorio padre.
y agregando la firma al listado de repositorios autenticados
Ahora solo queda utilizar el directorio para compartirle por la red, ya sea a través de un servidor web o NFS. Esto se lo dejo a Uds. ya que correspondería a otro artículo. Lo importante es añadir la autenticación mediante el archivo public.txt.
Suponiendo que el directorio raíz es /var/www, entonces ejecutamos:
Y desde el equipo que deseamos utilizar añadimos la siguiente línea al /etc/apt/sources.list (suponiendo que la IP del anfitrión es 192.168.0.100):
Luego ejecutamos los siguientes comandos:
Solo deberás ejecutar ambos scripts nuevamente, pero antes de ordenar los archivos debes moverles, todos ellos, inclusive los del repositorio, al directorio Repositorio/pool:
¡Suerte!
Ign en salida de apt-get
Felicitaciones por el tutorial y los scripts. Facilita mucho este proceso.
Tengo una duda, he realizado todo y estoy actualizando por web, en la máquina cliente me salen los siguientes mensajes:
¿Qué significa las iniciales Ign?
Ignorando proceso
Por lo general implica que apt ignora el proceso señalado, por ejemplo la obtención de traducciones y ya que estas no son relevantes aparecen como ignoradas y no como errores.
Excelente
Muy buena y clara la explicación, por cierto, sabes si el autor de los scripts los actualizara para Lucid (10.04), es que según vi solo soporta hasta Karmic.
Corrección
Se ha corregido un error donde firmaba los paquetes pertenecientes a la versión Maverick usando la información de Lucid.
Versiones
Gracias por comentar. Te indico que acabo de actualizar hasta la versión Maverick Meerkat (Ubuntu 10.10)
Excelente explicación
Está excelente era parte de lo que estaba buscando.
Agradecido
Gracias por comentar. Espero sea de tu agrado. Solo debes examinar ambos archivos para adaptarlo a tus necesidades.
Fantástico
Fantástico, super clara tu explicación, aun no lo pruebo (y no se si lo haga) pero no esta demás saberlo.
Gracias.
De nada
Gracias a ti por comentar.