Este artículo detalla cómo configurar repositorios de software locales y en red en diversos sistemas operativos Linux. La configuración es esencial para la gestión de paquetes y la instalación de software, especialmente en entornos de administración de bases de datos.
Montaje de una imagen ISO
Antes de configurar un repositorio local, es necesario montar la imagen ISO del sistema. El proceso implica asignar un punto de montaje, comúnmente /mnt o /media.
Para montar desde un archivo ISO subido al servidor:
sudo mount -o loop /ruta/al/archivo.iso /mnt
Para montar una unidad óptica física o virtual:
sudo mount /dev/sr0 /mnt
Verificar el montaje con:
df -hT | grep /mnt
Configuración de repositorios locales
Las siguientes configuraciones asumen que la imagen ISO está montada en /mnt.
Familia RHEL (yum/dnf)
El directorio de configuración es /etc/yum.repos.d.
Para versiones 6 y 7
# Crear copia de seguridad de repositorios existentes
sudo mkdir -p /etc/yum.repos.d/backup_orig
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup_orig/
# Crear el archivo de repositorio local
sudo tee /etc/yum.repos.d/local-media.repo << 'EOF'
[local_base]
name=Repositorio Local del Medio de Instalación
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF
# Listar repositorios activos
sudo yum repolist
Para versiones 8 y 9
sudo mkdir -p /etc/yum.repos.d/backup_orig
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup_orig/
sudo tee /etc/yum.repos.d/local-media.repo << 'EOF'
[local_baseos]
name=Repositorio Local - BaseOS
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[local_appstream]
name=Repositorio Local - AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
EOF
sudo dnf repolist
Familia Debian/Ubuntu (apt)
El archivo principal de fuentes es /etc/apt/sources.list.
Debian 11+ / Ubuntu
# Determinar el nombre en clave de la distribución
release_codename=$(lsb_release -cs)
# Realizar copia de seguridad
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# Configurar el repositorio local
sudo tee /etc/apt/sources.list << EOF
deb [trusted=yes] file:///mnt $release_codename main contrib non-free
EOF
sudo apt update
SUSE (zypper)
El directorio de configuración es /etc/zypp/repos.d.
SUSE Linux Enterprise 15
sudo mkdir -p /etc/zypp/repos.d/backup_orig
sudo mv /etc/zypp/repos.d/*.repo /etc/zypp/repos.d/backup_orig/
# Añadir repositorios desde el medio montado
sudo zypper ar -f /mnt/Module-Basesystem/ local-basesystem
sudo zypper ar -f /mnt/Module-Server-Applications/ local-server-apps
sudo zypper ref
openEuler / EulerOS
sudo mkdir -p /etc/yum.repos.d/backup_orig
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup_orig/
sudo tee /etc/yum.repos.d/local-openeuler.repo << 'EOF'
[local-openeuler]
name=Repositorio Local openEuler
baseurl=file:///mnt
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-openEuler
EOF
sudo dnf repolist
Configuración de repositorios en red
Cuando el medio de instalación no contiene todos los paquetes o se requiere acceso a repositorios actualizados, se configuran rpeositorios en red.
Fedora
# Obtener arquitectura y versión
sys_arch=$(uname -m)
os_release=$(rpm -E %fedora)
sudo mkdir -p /etc/yum.repos.d/backup_orig
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup_orig/
sudo tee /etc/yum.repos.d/fedora-network.repo << EOF
[fedora-network]
name=Fedora \$releasever - \$basearch - Repositorio en Red
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/\$releasever/Everything/\$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-\$releasever-\$basearch
EOF
sudo dnf makecache
Arch Linux (pacman)
El archivo de configuración del espejo es /etc/pacman.d/mirrorlist.
# Realizar copia de seguridad
sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
# Definir un espejo rápido
sudo tee /etc/pacman.d/mirrorlist << 'EOF'
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
EOF
sudo pacman -Syy