Cómo configurar un repositorio de paquetes local de Ubuntu Server 24.04 LTS

Si necesitas un mirror completo de todos los paquetes de Ubuntu Server 24.04 LTS (noble), esto implica descargar todo el contenido de:

  • main, universe, restricted, multiverse
  • Para todas las actualizaciones (updates, security, etc.)
  • Para la arquitectura amd64 (o más si lo deseas)
  • En todos los niveles de releases (release, -updates, -security, -backports, etc.)

Esto puede ocupar entre 200 y 500 GB (incluso más si se incluyen múltiples arquitecturas o paquetes de desarrollo). Mi recomendación es que añadas suficiente almacenamiento, siempre en LVM, para facilitar la expansión del mismo en caso necesario.


Requisitos para un mirror completo

  1. Ubuntu 24.04 LTS instalado (Server Edition, sin GUI).
  2. Al menos 500 GB de disco asignado, preferiblemente LVM/ext4.
  3. Conectividad a Internet estable para la primera descarga y futuras actualizaciones.
  4. Interconexión de red entre el servidor de repositorios y los clientes.
  5. Paquetes: apt-mirror y apache2.

Paso a paso para crear un mirror completo de Ubuntu 24.04 LTS

1. Instalar herramientas necesarias

sudo apt update
sudo apt install apt-mirror apache2 -y

2. Configurar el archivo /etc/apt/mirror.list

Editar el archivo de configuración (puedes usar el editor de texto que prefieras):

sudo vim /etc/apt/mirror.list

Reemplazar su contenido con la siguiente configuración:

set base_path    /var/spool/apt-mirror
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set defaultarch  amd64
set nthreads     10
set _tilde 0

# Repositorio principal
deb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse

# Repositorio de seguridad
deb http://security.ubuntu.com/ubuntu noble-security main restricted universe multiverse

# Limpieza automática
clean http://archive.ubuntu.com/ubuntu
clean http://security.ubuntu.com/ubuntu
Notas:Esto descarga todos los paquetes binarios disponibles para amd64 en todas las categorías.Si necesitas también paquetes fuente, agrega deb-src a cada línea (deb-src http://...).Si quieres más arquitecturas (arm64, etc.), puedes usar set defaultarch o lanzar apt-mirror con diferentes perfiles.

3. Ejecutar el mirroring completo

sudo apt-mirror

Esto descargará decenas de gigas. Puedes seguir el progreso con:

watch -n 5 du -sh /var/spool/apt-mirror/mirror/

Y ver los logs mediante el comando:

tail -f /var/spool/apt-mirror/var/apt-mirror.log
Este proceso puede tardar varias horas o incluso días, dependiendo de tu conexión.

Publicar el mirror con Apache

Una vez finalizado el proceso, crearemos enlaces simbólicos desde la ubicación de descarga de los paquetes a la raíz del servidor web Apache:

sudo ln -s /var/spool/apt-mirror/mirror/security.ubuntu.com/ubuntu /var/www/html/security
sudo systemctl restart apache2

Ahora, si accedes desde otro equipo o navegador a:

http://<IP_VM>/ubuntu/dists/noble/

Verás los componentes main, universe, etc.


Usar el mirror desde clientes offline

En cada máquina cliente, podemos añadir una entrada similar en el fichero /etc/hosts:

X.X.X.X reposerver.local
# X.X.X.X --> Dirección IPv4

Luego en el fichero /etc/apt/sources.list, de cada cliente, reemplazar las siguientes líneas por las de nuestro servidor de repositorios local:

sudo vim /etc/apt/sources.list
deb [trusted=yes] http://reposerver.local/ubuntu noble main restricted universe multiverse
deb [trusted=yes] http://reposerver.local/ubuntu noble-updates main restricted universe multiverse
deb [trusted=yes] http://reposerver.local/ubuntu noble-backports main restricted universe multiverse
deb [trusted=yes] http://reposerver.local/security noble-security main restricted universe multiverse

Guarda el fichero y ejecuta:

sudo apt update

¡Y listo! Ya tendrás acceso a todo el repositorio de Ubuntu 24.04 local.


Recomendaciones para mantenimiento

  1. Actualizar el mirror periódicamente (por ejemplo, una vez por semana):
sudo apt-mirror

O con cron:

sudo crontab -e

Y añade:

0 2 * * 6 /usr/bin/apt-mirror > /var/log/apt-mirror.log
  1. Optimiza espacio eliminando traducciones (opcional):

Crea el siguiente fichero bajo /etc/apt/apt.conf.d/:

sudo vim /etc/apt/apt.conf.d/99nolocales

Y añade:

Acquire::Languages "none";
  1. Hacer backup del mirror: puedes hacer un snapshot LVM, copiar a otro disco o incluso guardar la VM como plantilla.

¿Y si quieres soporte para más arquitecturas?

Puedes cambiar en el archivo mirror.list:

set defaultarch amd64

Por:

set defaultarch i386

O ejecutar múltiples mirrors usando distintas configuraciones (por ejemplo, para arm64, i386...).

Espero que te sea de utilidad. 😄

Subscribe to Miguel Carretas - Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
[email protected]
Subscribe