GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo excluir un repositorio específico para la actualización de Yum en CentOS/Red Hat

P:Tengo varios repositorios de yum en mi sistema. Por ejemplo, centos, epel, docker, mongo, etc. Cuando ejecuto el comando yum update, se actualizan los paquetes instalados de todos los repositorios. ¿Cómo puedo excluir un repositorio específico durante la actualización de yum?

R:Durante la actualización de yum, para excluir paquetes que pertenecen a un repositorio específico, use cualquiera de los dos métodos explicados en este tutorial.

Además, tenga en cuenta que en lugar de excluir un repositorio completo, debe también puede excluir un paquete específico:10 ejemplos de exclusión de Yum para omitir paquetes para la actualización de Yum de Linux (cómo excluir actualizaciones del kernel de Yum)

1. Obtener lista de repositorios

Para ver todos los repositorios disponibles en su sistema, ejecute yum repolist como se muestra a continuación.

# yum repolist
repo id                repo name              status
base                   CentOS-6 - Base        6,575
extras                 CentOS-6 - Extras         62
updates                CentOS-6 - Updates     1,622
dockerrepo             Docker Repository          2
mongodb-org-3.0        MongoDB Repository        75
repolist: 8,336

En el ejemplo anterior, tenemos lo siguiente:

  • Los primeros tres repositorios enumerados anteriormente son los principales repositorios de CentOS:base, extras y actualizaciones
  • dockerrepo es un repositorio de terceros que contiene paquetes relacionados con contenedores Docker
  • mongodb-org-3.0 es un repositorio de terceros que contiene paquetes relacionados con MongoDB.

Cuando actualice yum como se muestra a continuación, actualizará todos los paquetes que ya están instalados en su sistema a la última versión disponible de todos los repositorios anteriores.

yum update

Si ya tiene mongodb instalado en su sistema, y ​​cuando ejecute la "actualización de yum" anterior, también actualizará los paquetes de mongodb a la última versión.

Si no desea actualizar mongodb cuando realiza la "actualización de yum", debe excluir eso durante la actualización de yum como se explica en la siguiente sección.

Además, si desea saber a qué repositorio pertenece un paquete en particular, para que pueda excluir ese repositorio de la actualización, use el comando yum info como se muestra a continuación.

yum info package-name | grep -i repo

Si es nuevo en el comando yum:15 ejemplos de comandos Yum de Linux:instalar, desinstalar, actualizar paquetes

2. Excluir un Repositorio de la Actualización de Yum (Método 1)

Puede usar la opción –disablerepo=repository-name junto con yum update. Esto no actualizará los paquetes que pertenecen al nombre de repositorio dado.

En el siguiente ejemplo, la actualización de yum actualizará todos los paquetes instalados excepto cualquier paquete instalado que pertenezca al repositorio de MongoDB.

yum --disablerepo=mongodb-org-3.0 update

También puede especificar la opción –disablerepo al final después de la actualización de yum. Lo siguiente excluirá los paquetes que pertenecen al repositorio de Docker durante la actualización de yum.

yum update --disablerepo=dockerrepo

Puede obtener el nombre exacto del repositorio que desea excluir mirando la primera columna de la salida del comando "yum repolist".

3. Excluir un Repositorio de Yum Update usando el Parámetro Habilitado (Método 2)

En lugar de excluir un repositorio específico de la línea de comando de actualización de yum, puede excluir permanentemente un paquete de la actualización de yum configurando el parámetro habilitado en 0 en el archivo de configuración del repositorio.

Los archivos de configuración del repositorio se encuentran en el directorio /etc/yum.repos.d como se muestra a continuación.

# ls -l /etc/yum.repos.d/
-rw-r--r--. 1 root root 1926 Jan 30  2016 CentOS-Base.repo
-rw-r--r--  1 root root  166 Feb 18  2016 docker.repo
-rw-r--r--  1 root root  142 Feb  5  2016 mongodb-org-3.0.repo
..
..

Para excluir el repositorio mongodb, abra el archivo del repositorio mongodb y cambie el valor de habilitado a 0 como se muestra a continuación.

# vi /etc/yum.repos.d/mongodb-org-3.0.repo 
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=0

Ahora, si hace yum repolist, no verá el repositorio de MongoDB en la salida.

# yum repolist
repo id           repo name              status
base              CentOS-6 - Base        6,575
extras            CentOS-6 - Extras         62
updates           CentOS-6 - Updates     1,622
dockerrepo        Docker Repository          2
repolist: 8,261

Esto también significa que aunque tenga paquetes relacionados con mongodb instalados en su sistema, cuando realice la siguiente "actualización de yum", los paquetes de mongodb ya no se actualizarán.

yum update

4. Excluir varios repositorios de la línea de comandos de actualización de Yum

También puede excluir múltiples repositorios durante la actualización de yum especificando los repositorios delimitados por comas como se muestra a continuación.

El siguiente ejemplo excluirá el repositorio de MongoDB, Docker y EPEL durante la actualización de yum.

yum update --disablerepo=mongodb-org-3.0,dockerrepo,epel

5. Habilitar un repositorio para la actualización de Yum

Si ha deshabilitado un repositorio configurando "enabled=0" en el archivo de configuración del repositorio, aún puede incluirlo durante su "actualización de yum" usando la opción -enablerepo como se muestra a continuación.

El siguiente ejemplo incluirá los paquetes del repositorio de MongoDB durante la "actualización de yum", aunque este repositorio esté deshabilitado en el archivo del repositorio en el directorio /etc/yum.repos.d/.

yum update --enablerepo=mongodb-org-3.0

6. Combine EnableRepo y DisableRepo en Yum Update

También puede ser creativo combinando las opciones enablerepo y disabledrepo.

Por ejemplo, el siguiente comando de actualización de yum actualizará solo los paquetes del repositorio de MongoDB.

yum update --disablerepo=* --enablerepo=mongodb-org-3.0

En lo anterior:

  • –disablerepo=* Esto indica que primero se deben deshabilitar todos los repositorios y no se deben considerar para la actualización de yum
  • –enablerepo=mongo Esto indica que solo se debe considerar el repositorio de MongoDB durante la actualización de yum (cuando se combina con la opción de deshabilitación anterior)

Linux
  1. Cómo deshabilitar el repositorio de paquetes YUM en CentOS

  2. Cómo agregar un repositorio de Yum

  3. Cómo duplicar un repositorio en Linux

  4. Cómo prepararse para los exámenes de certificación de administrador del sistema Linux

  5. ¿Cómo habilitar el repositorio de PowerTools en CentOS 8?

Preparación para aplicar actualizaciones en Red Hat Linux

Cómo actualizar CentOS

Cómo construí una conferencia interactiva de OpenShift para Red Hat Academy

10 ejemplos de exclusión de Yum para omitir paquetes para la actualización de Yum de Linux (cómo excluir actualizaciones del kernel de Yum)

Cómo habilitar el repositorio Remi en Fedora/Red Hat para instalar la pila LAMP

8 repositorios de terceros de YUM para CentOS y RHEL