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
- Ubuntu 24.04 LTS instalado (Server Edition, sin GUI).
- Al menos 500 GB de disco asignado, preferiblemente LVM/ext4.
- Conectividad a Internet estable para la primera descarga y futuras actualizaciones.
- Interconexión de red entre el servidor de repositorios y los clientes.
- Paquetes:
apt-mirroryapache2.
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 -y2. 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.listReemplazar 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/ubuntuNotas:Esto descarga todos los paquetes binarios disponibles paraamd64en todas las categorías.Si necesitas también paquetes fuente, agregadeb-srca cada línea (deb-src http://...).Si quieres más arquitecturas (arm64, etc.), puedes usarset defaultarcho lanzar apt-mirror con diferentes perfiles.
3. Ejecutar el mirroring completo
sudo apt-mirrorEsto 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.logEste 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 apache2Ahora, 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 IPv4Luego 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.listdeb [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 multiverseGuarda 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
- Actualizar el mirror periódicamente (por ejemplo, una vez por semana):
sudo apt-mirrorO con cron:
sudo crontab -eY añade:
0 2 * * 6 /usr/bin/apt-mirror > /var/log/apt-mirror.log- Optimiza espacio eliminando traducciones (opcional):
Crea el siguiente fichero bajo /etc/apt/apt.conf.d/:
sudo vim /etc/apt/apt.conf.d/99nolocalesY añade:
Acquire::Languages "none";- 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 amd64Por:
set defaultarch i386O ejecutar múltiples mirrors usando distintas configuraciones (por ejemplo, para arm64, i386...).
Espero que te sea de utilidad. 😄