Instalar programas
Introducción y antecedentes
La instalación de software es sin duda uno de los aspectos más delicados de la gestión de sistemas. De hecho, algunas tareas que antes no eran tan obvias en Linux se han facilitado mucho, como la instalación del sistema. Otras tareas, como la gestión de usuarios, requieren una habilidad técnica considerable y dejan poco al azar.
Sin embargo, por determinadas razones, la gestión de la instalación de software es un tema que hay que comprender y dominar tanto técnica como teóricamente.
Una de las principales razones es que no existe consenso en el mundo Linux ni en el mundo del software de código abierto en general. Donde otros sistemas operativos propietarios han impuesto su esquema de gestión del software, en el mundo Linux se ofrecen varias opciones, que varían en su eficacia y se adaptan a las necesidades.
Esta variedad de sistemas de gestión de software puede explicarse, por un lado, por el gran número de distribuciones de Linux y, por otro, por el gran número de plataformas de hardware compatibles.
Para un sistema operativo propietario que se reduce a unas pocas versiones en una o dos plataformas de hardware, existen cientos de distribuciones de Linux en decenas de plataformas, sobre las que el autor del software tiene que trabajar.
Así, mientras que en un principio cada gestor de sistemas tenía que compilar él...
Instalación usando el gestor de paquetes YUM
1. Introducción a YUM
YUM (Yellow Dog Updater Modified, Actualizador del Perro Amarillo Modificado) es el gestor de paquetes oficial de Red Hat Enterprise Linux. Basado en el formato de paquetes RPM de Red Hat, es obra de los autores de la distribución Yellow Dog Linux, pero se utiliza en muchas otras distribuciones aparte de Red Hat.
A partir de RHEL 8, la herramienta DNF sustituye a YUM. Esta es la razón por la que el comando dnf está reemplazando gradualmente al comando yum en todo el mundo Red Hat, así como en el resto de este libro.
Es necesario ser superusuario (root) para instalar, eliminar o actualizar paquetes. Además, el sistema debe estar registrado en el portal de clientes para poder descargar paquetes de los repositorios de Red Hat. Para saber cómo registrar el sistema, consulte el capítulo Implementar un servidor Red Hat. Un último detalle importante: la hora del sistema operativo debe ser la correcta
En los siguientes párrafos se describe cómo instalar paquetes desde la línea de comandos. No obstante, existe un gestor de paquetes de interfaz gráfica, en el menú Sistema - Administración - Añadir/Quitar software.
Actualizar YUM a la versión 4 o DNF
La versión 4 de YUM es, de hecho, la herramienta DNF (Dandified Yum, dandy elegante):
[root@scott ~]# ls -lh /usr/bin/yum
lrwxrwxrwx. 1 root root 5 mar 15 07:02 /usr/bin/yum -> dnf-3
[root@scott ~]# yum --version
4.14.0
Instalado: dnf-0:4.14.0-5.el8.noarch el mié 13 sep 2023 21:35:49 GMT
(...)
Instalado: rpm-0:4.16.1.3-22.el0.x86_64 el mié 13 sep 2019 21:24:16 GMT
En la práctica, esto no cambia mucho, excepto que los comandos dnf y yum son absolutamente intercambiables.
[root@scott ~]# dnf repolist
Actualización de repositorios de Subscription Management.
id del repositorio nombre del repositorio
rhel-9-for-x86_64-appstream-rpms Red Hat Enterprise Linux 9
for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-rpms Red Hat Enterprise Linux 9
for x86_64 - BaseOS (RPMs)
[root@scott ~]# yum repolist
(...)
id del repositorio nombre...
RPM: instalar paquetes independientes
Algunos programas no están disponibles en repositorios, ya sea porque no son lo suficientemente populares o porque son patentados. En cambio, muchos de ellos están disponibles en el sitio de su editor en forma de simples paquetes RPM, que se descargan e instalan mediante un comando específico: rpm.
RPM (Red Hat Package Manager, Gestor de paquetes de Red Hat) es un programa que gestiona la instalación de paquetes RPM, disponible en muchas plataformas (incluidas Fedora y CentOS).
Las siglas del formato de paquete RPM significan Red Hat Packet Management.
RPM dispone de una base de datos local que mantiene una lista de los paquetes instalados. RPM le permite saber qué paquetes se han instalado, con su número de versión, y cuáles son sus dependencias. Esto permite actualizarlos o desinstalarlos.
RPM instala paquetes RPM «aislados», es decir, no resuelve dependencias. Utilice Yum siempre que sea posible. Tenga en cuenta que Yum también utiliza el formato de los paquetes RPM, pero de una forma mucho más potente.
1. ¿Dónde se pueden encontrar paquetes RPM?
Como hemos dicho, lo mejor es utilizar Yum para instalar software. Sin embargo, hay casos en los que Yum no podrá satisfacer sus necesidades. En este caso, ¿dónde se pueden encontrar paquetes RPM?
Existen varias soluciones posibles:
-
En el DVD de instalación de Red Hat Enterprise Linux. Cuando se instala el sistema operativo, o cuando se utiliza Yum, en realidad son paquetes RPM los que se instalan.
-
En repositorios de software.
-
Los sitios web de repositorios de software suelen ofrecerle una lista de RPM, a los que se puede acceder utilizando el navegador web.
Por ejemplo, para EPEL, para Red Hat Enterprise Linux: https://fedoraproject.org/wiki/EPEL/
-
También se puede ir directamente a la fuente, abriendo los enlaces en el archivo de configuración de Yum en /etc/yum.repos.d.
Por ejemplo, en el archivo de configuración del repositorio EPEL:
[root@hopper ~]# cat /etc/yum.repos.d/epel.repo
[epel]
name= Extra Packages for Enterprise Linux $releasever - $basearch
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/
Everything/$basearch
A continuación, puede abrir este enlace en su navegador: https://download.fedoraproject.org/pub/epel
-
Directamente en los sitios web de los editores de software....
Compilar a partir de las fuentes
La mayor parte del software que necesita debería estar disponible en repositorios de software estándar, o como RPM precompilados, distribuidos por el autor.
En algunos casos, el software que desea instalar puede no estar disponible para Red Hat Enterprise Linux, sino solo en forma de archivos fuente que será necesario compilar.
Aunque no sean desarrolladores, los gestores de sistemas a veces tendrán que instalar software a partir del código fuente. Por ello, necesitan conocer los pasos mínimos necesarios para realizar el trabajo.
1. Compilar: ¿por qué?
Los programas que ejecuta la máquina son:
-
Scripts escritos en un lenguaje interpretado, como los scripts bash. En este caso, se necesita un intérprete para «convertir» estos comandos en un lenguaje que pueda ser entendido por la máquina, a menudo simplemente ejecutando comandos que ya han sido compilados.
-
Programas que están escritos en lenguaje de máquina y que, por tanto, pueden ejecutarse directamente. Como estos programas no necesitan ser interpretados, se ejecutan mucho más rápido que los scripts.
Un buen ejemplo de esta diferencia es el software Cacti, cuya finalidad es generar gráficos de uso de las máquinas. El software que se conecta a las máquinas para recuperar las estadísticas se denomina poller (encuestador). La primera versión de esta aplicación estaba escrita en PHP, un lenguaje interpretado. Para mejorar el rendimiento, ahora se recomienda usar el poller spine, escrito en C y compilado para la máquina.
Por supuesto, los programas en lenguaje máquina, a menudo denominados binarios, han sido escritos en un lenguaje comprensible para el ser humano. El programa, aún en su estado inicial, se denomina código fuente.
A continuación, el código fuente se convierte en lenguaje máquina: es lo que se denomina compilar.
El lenguaje más utilizado para crear binarios hoy en día son C y sus derivados, aunque existen muchos otros lenguajes que se pueden compilar.
La compilación crea un ejecutable binario, que debe tener en cuenta no solo el sistema operativo (o núcleo) que ejecutará el software, sino también el procesador subyacente (o el conjunto de instrucciones utilizado por el procesador).