Cómo Crear tu Repositorio de Ubuntu


Todos aquellos que algunas vez han trabajado en Linux están familiarizados con la palabra Repositorio. Sabemos que un Linux y en este caso específico Ubuntu sin un repositorio de paquetes es una muerte lenta y poco agradable. Los Repositorios son sitios centralizados donde se almacenan, actualizan y mantienen información digital, un Repositorio de Ubuntu es exactamente lo mismos. Todos los paquetes necesarios como aplicaciones, librerías, controladores entre otros se encuentran debidamente organizados por distribución, arquitectura e incluso tipo de licencia de uso.

Cuando procedemos a instalar el Sistema Operativo de nuestro ordenador utilizando algún medio externo como USB o DVD inmediatamente tratando de realizar las tareas comunes o simplemente por la necesidad de usar aplicaciones específicas para nuestro trabajo hacemos uso de los mismos. Por supuesto para ello necesitamos de una conexión a Internet y el Sistema Operativo en conjunto con los Repositorios de Ubuntu se encargarán del resto. Pero, ¿qué pasa si la conexión a internet que poseemos es limitada y solo disponible en nuestro lugar de trabajo? La disponibilidad de un Repositorio a toda hora offline es la solución que brindaremos a continuación en el presente artículo.

Nuestro ordenador actualizará diariamente en horario laboral digamos a las 9 de la mañana un Repositorio local que será exactamente un mirror de los de Ubuntu. Actualizar significa aplicar los cambios originados durante el tiempo en que nuestro equipo no actualiza. Estas descargas serán incrementales por lo que solo la primera vez demorará el tiempo que sea necesario para obtener el Repositorio completo. Luego de esto solamente aplicará los nuevos archivos y borrará los no existentes en la versión online garantizando disponibilidad y actualización de nuestro repositorio local.

Contamos con un comando debmirror el cual puede instalarse fácilmente con la siguiente línea: sudo apt-get install debmirror en Ubuntu, también se encuentra disponible en otras distribuciones. Esta aplicación es nuestro cliente de conexión el cual se encargará de realizar todas las tareas de sincronización antes descritas. Luego de conformar el comando con todos los parámetros que describiremos, lo colocaremos en el cron para que se ejecute todos los días a las 9 de la mañana haciendo completamente transparente el proceso.

debmirror --progress --verbose --nosource --method=http --root=Ubuntu --host=archive.ubuntu.com --dist=precise,precise-backports,precise-security,precise-updates --section=main,universe,multiverse,restricted --arch=amd64 --ignore-release-gpg --diff=none /media/d@ta/Repo/ubuntu --timeout=1800

Ahora le explicaremos cada uno de los parámetros configurados. Tenga en cuenta que esto puede cambiar según las condiciones de cada usuario.

  • –progress Muestra barras de estado por cada uno de los ficheros que se descarguen
  • –verbose Muestra el progreso y cada una de las acciones entre descargas
  • –nosource No incluye los archivos fuentes de los paquetes. Pueden ser necesarios si eres desarrollador y necesitas las fuentes, para ello obvie esta opción
  • –method Método de descarga. Protocolo usado. Actualmente se encuentran disponibles ftp, http y rsync
  • –root Directorio raíz del Repositorio
  • –host Servidor de Repositorio remoto
  • –dist Distribuciones a sincronizar
  • –section Secciones del Repositorio a sincronizar
  • –arch Arquitectura. Los paquetes vienen específicamente para una arquitectura u otra. (i386[32 bits] o amd64[64 bits])
  • –ignore-release-gpg El fichero Release.gpg es chequeado y tomado en cuenta en cada sincronizaci’on pero en caso de no existir que lo ignore y fuerze la sincronización
  • –timeout Tiempo de espera en segundos antes de abortar por error en la conexión

Usando el comando man debmirror pueden chequear estas opciones y algunas más disponibles. Una vez confeccionado el comando procedemos a agregarlo en un fichero digamos ubuntu-mirror.sh y configurar el cron para que automáticamente cada día actualice nuestro repositorio local.

La siguiente línea agréguela en el crontab -e y luego reinicie el servicio cron. Verifique y reemplace las rutas necesarias según su configuración.

00 09 * * * /home/leroy/ubuntu-mirror.sh > /var/log/debmirror.log

Al final obtenemos un repositorio completamente actualizado con respecto a los principales de Ubuntu. Luego llegamos a la casa y si necesitamos alguna aplicación urgente o algún controlador o librería pues hacemos uso de nuestra solución offline. Otras de las muchas funcionalidades de esta solución es disminuir el uso del ancho de banda de nuestra internet en la empresa donde trabajamos, configurando un servidor que se encargue de este proceso y nuestros clientes Linux actualicen del mismo. Los diferentes usos son muchos y lo dejo a la consideración de ustedes. Como siempre coméntennos cualquier duda o sugerencia.

Latest posts by Leroy Ley (see all)