En muchas ocasiones hay que instalar el software necesario en un servidor Linux sin ocupar el internet, por permisos de firewall o por que sencillamente el servidor no esta conectado a ninguna red, y lo mejor es instalar el software o los RPMs con una herramienta que nos libere de la pesadez de las dependencias de librerías adicionales, que es donde prefiero usar yum.
Yum es un gestor de paquetes desarrollado por la Universidad de Duke University para mejorar la instalación de los RPMs.
En pocas palabras lo que necesitamos es montar la iso de instalación del CentOS elegido y configurar yum para que la use.
Índice de contenidos
Pasos
Paso 1. Descargar el iso de instalación
Entramos a la página de CentOS (https://www.centos.org/download/) y descargamos el iso deseado, puede ser con cualquier otra computadora que si tenga acceso a internet y lo copie al directorio home del usuario.
Paso 2. Mover nuestro archivo y crear carpeta para montar el ISO
Movemos nuestro archivo iso al directorio media y creamos nuestra carpeta donde accederemos a la información del iso.
[root@localhost ~]# mv CentOS-7-x86_64-Everything-2009.iso /media/
[root@localhost ~]# mkdir /media/iso
Paso 3. Montar la iso
Montamos la iso con la ejecución siguiente:
[root@localhost ~]# mount -o loop CentOS-7-x86_64-Everything-2009.iso /media/iso
Paso 4. Verificar repositorio de yum
Esta parte es un poco confusa, algunas instalaciones de CentOS directamente traen el repositorio en el raíz del iso o tienen dos repositorios distintos, para identificar cual de las dos es, buscamos que haya dos carpetas: Packages y repodata.
- Packages: Carpeta donde se almacenan los RPM
- repodata: Información requerida por yum para entender lo que hay en para cargar en Packages.
En CentOS 7 he visto que se encuentran ambas carpetas en raíz y en CentOS 8 he visto que existen dos repositorios en raíz el de AppStream y el de BaseOS que cada uno tiene su par de carpeta de Packages y de repodata.
Paso 5. Deshabilitar repositorios yum en internet
Nuestra herramienta yum típicamente cuenta con un archivo de configuración por repositorio y estos están guardados en /etc/yum.repos.d/ con una estructura parecida a la siguiente:
[repo]
name=nombre
mirrorlist=URL
baseurl=URL
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
Cada uno de estos archivos puede tener más de estos repositorios, aquí lo que vamos a hacer es deshabilitarlos cambiando la linea de enabled=1 a enabled=0 a todos para que la herramienta no este buscando repositorios en internet, se puede hacer con el editor que guste, normalmente me gusta usar vi.
Paso 6. Creamos repositorio local
Creamos un archivo en la carpeta de configuración de repositorios donde configuraremos nuestro repositorio local:
[root@localhost ~]# vi /etc/yum.repos.d/CentOS-MountedMedia.repo
Dentro escribimos:
[MountedMedia]
name=MountedMediaOS
baseurl=file:///media/iso
gpgcheck=1
gpgkey=file:///media/iso/RPM-GPG-KEY-CentOS-7
enabled=1
Si nos aparece el caso de que hay dos repositorios en el iso, creamos un archivo de estos para cada uno, buscando apuntar en baseurl la información correcta para cada uno. Si no sabemos donde esta la llave gpg ponemos la bandera de gpgcheck=0 , pero ya saben que es mejor buscar el firmado gpg correcto.
Paso 7. Probamos yum
Buscamos probar nuestro nuevo repositorio de yum.
[root@localhost ~]# yum search httpd
Conclusiones
Para instalar software en Linux sin preocuparnos de las dependencias o de conectarnos a Internet por medio de yum es posible y sin tanto rollo.
Como siempre si les gusta compartan y si no también, mi cuenta de Twitter la reviso constantemente por si quieren hacerme comentarios o preguntas.