¿Cómo instalar y configurar repositorios en CentOS / RHEL?

Los repositorios estándar (oficiales) RHEL / CentOS ofrecen una pequeña cantidad de paquetes básicos que no siempre contienen las últimas versiones de los programas. Sin embargo, puede utilizar repositorios públicos o privados de terceros para instalar nuevos programas en Red Hat Enterprise Linux, CentOS, Oracle Linux y Scientific Linux. Remi y EPEL son los repositorios de terceros más populares. En este artículo, veremos cómo instalar, administrar y usar repositorios adicionales con el administrador de paquetes yum (dnf) en CentOS.

El repositorio es un almacén actualizable de paquetes de software RPM para Linux. Diferentes administradores de paquetes pueden usar repositorios de red para instalar y actualizar programas.

¿Cómo habilitar EPEL y Remi Repository en CentOS?

Cuando instala un sistema operativo (en nuestro ejemplo, es CentOS 7), los repositorios básicos se instalan de forma predeterminada. Puede ver la lista de ellos usando el comando:

yum repolist

repolista de yum

Como puede ver en la captura de pantalla, hay 3 repositorios instalados en el sistema: base, extras, actualizaciones. Estos son suficientes para comenzar a instalar software básico y repositorios adicionales.

Consideremos cómo instalar repositorios adicionales en CentOS.

EPEL puede ser el repositorio más popular en la actualidad.

EPEL (paquetes adicionales para Enterprise Linux) es un proyecto de repositorio abierto y gratuito proporcionado por el equipo de Fedora. Contiene paquetes de software adicional de alta calidad para distribuciones de Linux. Este repositorio aloja una gran cantidad de paquetes, desde servidores FTP hasta PHP y herramientas de monitoreo del sistema. Este es el repositorio más popular. Vale la pena señalar que los paquetes EPEL no entran en conflicto con los paquetes nativos de CentOS / RHEL y no los reemplazan.

Es muy fácil instalar EPEL en CentOS 7 (a diferencia de CentOS 6) usando el paquete RPM (es el método más fácil para agregar un nuevo repositorio):

yum install epel-release

yum dnf repolist - lista repositorios conectados en centos / rhel

Después de ser instalado, el repositorio aparece en la lista de repositorios sin ninguna acción (no es necesario borrar el caché de yum).

Para instalar el repositorio Remi en CentOS, ejecute este comando:

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Remi es otro repositorio popular para CentOS. Contiene las últimas versiones de PHP y MySQL. Fue creado por Remi Collet. Para utilizar este repositorio, el repositorio EPEL debe estar habilitado en su sistema operativo. Tenga en cuenta que algunos de sus paquetes pueden entrar en conflicto con los paquetes de los repositorios básicos.

Si no hay un paquete RPM para el repositorio que necesita, puede agregarlo creando un archivo de configuración .repo en /etc/yum.repos.d manualmente (consulte la siguiente sección del artículo).

Para comprender desde qué repositorios se instalan los paquetes, puede mostrar la lista completa de paquetes:

yum list installed

Como puede ver, cada paquete tiene la información sobre el repositorio desde el que está instalado (hay repositorios base, update, epel y anaconda en la captura de pantalla a continuación).

yum lista los paquetes instalados con las fuentes del repositorio

Puede mostrar la lista de paquetes disponibles para la instalación en un repositorio específico:

yum repo-pkgs epel list

Archivos de configuración del repositorio (* .repo)

Todos los archivos de configuración del repositorio se encuentran en /etc/yum.repos.d/ y tener el * .repo extensión. Un archivo de configuración típico contiene los siguientes parámetros:

  • nombre – el nombre del repositorio
  • baseurl – el enlace a un repositorio (puede ser ftp: // dirección, http: // dirección, https: // dirección o archivo: // dirección para un repositorio local)
  • activado – si se debe utilizar este repositorio: 1 – el repositorio está habilitado, 0 – el repositorio está deshabilitado;
  • asincrónico – si utilizar la descarga de paquetes en paralelo (automático / encendido / apagado)
  • gpgcheck – si realizar una comprobación de GPG (1 – la comprobación está activada)
  • gpgkey – un enlace a una clave GPG
  • excluir – la lista de paquetes excluidos
  • includepkgs – la lista de paquetes incluidos
  • lista de espejos – la lista de espejos del repositorio

El archivo de repositorio más pequeño puede verse así:

[rep_name]
name=rep_name
baseurl=rep_url

Por ejemplo, después de haber instalado el repositorio REMI, algunos archivos de configuración Remi (remi – *. Repo) aparecerán en el directorio del repositorio.

/etc/yum.repos.d - lista de repositorios conectados en centos / rhel / fedora

Como puede ver, Remi tiene un archivo de configuración separado para cada versión de PHP. Debe habilitar la versión de PHP que necesita a través del archivo de configuración. Por ejemplo, tendré PHP 7.3 instalado en mi servidor, así que he habilitado el repositorio correspondiente (he especificado enabled=1 en remi-php73.repo):

configurar el archivo de repositorio en centos

Puede conectar el repositorio manualmente. Para hacerlo, cree un archivo de configuración del repositorio en /etc/yum.repos.d/. Agreguemos el repositorio MariaDB.

nano /etc/yum.repos.d/mariadb.repo

Agregue los datos proporcionados por el desarrollador del paquete MariaDB:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos73-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

¿Cómo deshabilitar un repositorio en CentOS?

Para deshabilitar uno de los repositorios instalados, basta con especificar habilitado = 0 en su archivo de configuración.

deshabilitar el repositorio en centos a través del archivo de configuración

Luego limpia la caché de yum:

yum clean all

Y recrearlo:

yum makecache

Después de eso, el repositorio remi-php73 no se utilizará cuando instale o actualice paquetes.

Si no desea utilizar un repositorio solo para el comando de instalación / actualización del paquete actual, puede deshabilitarlo en el comando yum, por ejemplo:

yum update —disablerepo=epel

En este ejemplo, hemos deshabilitado EPEL y actualizado los paquetes instalados.

Puede deshabilitar temporalmente todos los repositorios que no necesita. Por ejemplo, para actualizar paquetes solo desde el repositorio MariaDB, ejecute el comando:

yum update --disablerepo "*" --enablerepo=mariadb

Para deshabilitar o eliminar repositorios, yum-config-manager que pertenece a las herramientas yum-utils.

Instale yum-utils:

yum -y install yum-utils

Deshabilite un repositorio, por ejemplo, remi:

yum-config-manager --disable remi

Para eliminar un repositorio por completo, debe eliminar sus archivos de configuración y actualizar yum cache.

¿Cómo comprobar el repositorio para ver si hay actualizaciones de paquetes disponibles?

Puede consultar un repositorio específico para conocer las actualizaciones de paquetes disponibles.

yum check-update --disablerepo "*" --enablerepo=mariadb

yum comprobar-actualizar con disablerepo y enablerepo

Por lo tanto, puede administrar los repositorios conectados en su servidor. Tenga en cuenta que diferentes repositorios pueden contener los mismos paquetes y pueden producirse conflictos de versiones durante la actualización. Por lo tanto, deje solo los repositorios con los que trabaja habilitados.

Repositorios de terceros populares para CentOS y RHEL

MariaDB repo, como puede adivinar por su nombre, contiene paquetes MariaDB. El repositorio ha sido creado por desarrolladores de MariaDB, es constantemente compatible y actualizado.

Para instalar este repositorio en el sistema, cree un archivo .repo con el siguiente contenido:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos73-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Como el repositorio anterior, Nginx contiene paquetes relacionados con el servidor HTTPD nginx.

Para instalar el repositorio nginx, cree un archivo .repo y agregue el siguiente texto aquí:

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/CentOS/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

Esta lista de repositorios es suficiente para configurar la llamada pila LAMP con nginx como servidor front-end.

Esta lista de repositorios puede ser suficiente para casi cualquier usuario, sin embargo, daré algunos ejemplos más.

Webtatic cuenta con el apoyo de un número limitado de expertos, en su mayoría Andy Thompson. Contiene paquetes relacionados con PHP, pero es menos popular que Remi, ya que la última versión de PHP en este repositorio era 7.2 cuando se escribió este artículo.

yum repo-pkgs webtatic list | grep php7

mod_php71w.x86_64 7.1.31-1.w7 webtatic
mod_php72w.x86_64 7.2.21-1.w7 webtatic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
php72w-tidy.x86_64 7.2.21-1.w7 webtatic
php72w-xml.x86_64 7.2.21-1.w7 webtatic
php72w-xmlrpc.x86_64 7.2.21-1.w7 webtatic

Para habilitar el repositorio, instale el siguiente paquete RPM:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

MySQL es lo que quiero recordar. No lo he colocado junto con los populares, ya que creo que MySQL como servidor de base de datos ha perdido sus posiciones. MariaDB generalmente se instala en los servidores. Sin embargo, si alguien quiere instalar MySQL, puede habilitar este repositorio. Por ejemplo, desea instalar mysql 5.7:

Descarga el paquete:

wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

E instalarlo:

rpm -Uvh mysql57-community-release-el7-9.noarch.rpm

Después de la instalación puedo instalar MySQL:

instalar mysql desde el repositorio en centos

En este artículo, mostramos algunos aspectos de la administración de repositorios en CentOS y estudiamos algunos repositorios útiles.

Artículos Interesantes