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-mirror
yapache2
.
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 paraamd64
en todas las categorías.Si necesitas también paquetes fuente, agregadeb-src
a cada línea (deb-src http://...
).Si quieres más arquitecturas (arm64
, etc.), puedes usarset 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
- 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
- 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";
- 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. 😄