Deshabilite ciertas actualizaciones de paquetes usando YUM en RHEL/CentOS/Fedora


YUM (Yellowdog Updater Modified) es un sistema de gestión de paquetes predeterminado de código abierto para varios tipos de Linux como RHEL (Red Hat Enterprise Linux), CentOS (Community Enterprise Operating System) y Fedora. La utilidad YUM se utiliza para instalar, actualizar y eliminar paquetes basados en rpm de los repositorios de distribución en los sistemas.

Pero en algún momento no queremos actualizar ciertos paquetes como Apache Server (HTTP), MySQL, PHP y otras aplicaciones importantes, porque si tales actualizaciones pueden dañar la aplicación web que se está ejecutando actualmente en el servidor o puede detener las actualizaciones hasta que la aplicación sea parcheada. con nuevas actualizaciones.

En este artículo, le mostraremos cómo podemos excluir (deshabilitar) ciertas actualizaciones de paquetes usando YUMtool. Podemos excluir o deshabilitar ciertas actualizaciones de paquetes de los repositorios de terceros. La sintaxis de exclusión sería la siguiente.

exclude=package package1 packages*

La sintaxis anterior excluirá "paquete", "paquete1" y la lista de actualizaciones o instalaciones de "paquete". Cada palabra clave debe estar separada con un espacio para la exclusión de paquetes.

Cómo excluir paquetes en YUM

Para excluir (deshabilitar) actualizaciones de paquetes específicos, abra el archivo llamado /etc/yum.conf con el editor que elija.

# vi /etc/yum.conf

Agregue la siguiente línea en la parte inferior del archivo con la palabra clave excluir como se muestra a continuación.

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

# This is the default, if you make this bigger yum won't see if the metadata 
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

## Exclude following Packages Updates ##
exclude=httpd php mysql

En el ejemplo anterior, la línea exclude deshabilitará las actualizaciones para los paquetes “httpd”, “php” y “mysql”. Intentemos instalar o actualizar uno de ellos usando el comando YUM como se muestra a continuación.

# yum update httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.01link.hk
 * extras: centos.01link.hk
 * updates: mirrors.hns.net.in
base                                                   | 3.7 kB     00:00
extras                                                 | 3.0 kB     00:00
updates                                                | 3.5 kB     00:00
updates/primary_db                                     | 2.7 MB     00:16
Setting up Update Process
No Packages marked for Update

Cómo excluir paquetes de EPEL Repo

Para excluir las instalaciones o actualizaciones de paquetes del repositorio de EPEL, abra el archivo llamado /etc/yum.repos.d/epel.repo.

# vi /etc/yum.repos.d/epel.repo

Agregue la línea de exclusión especificando los paquetes que se excluirán de las actualizaciones.

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
## Exclude following Packages Updates ##
exclude=perl php python

Ahora intente actualizar los archivos especificados anteriormente desde el repositorio de EPEL usando el comando YUM.

# yum --enablerepo=epel update perl php python
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.hns.net.in
 * epel: ftp.kddilabs.jp
 * extras: mirrors.hns.net.in
 * updates: mirrors.hns.net.in
Setting up Update Process
No Packages marked for Update

También puede usar la opción de línea de comando yum para excluir paquetes sin agregar archivos al repositorio.

# yum --exclude=httpd update

Para excluir la lista de paquetes, use el comando de la siguiente manera.

# yum --exclude=mysql\* --exclude=httpd\* update

De esta forma, puede excluir las actualizaciones de los paquetes que desee. Hay muchas otras formas en que puede hacerlo, por ejemplo, recientemente compilamos un artículo sobre 4 formas útiles de bloquear/deshabilitar o bloquear ciertos paquetes usando el comando yum en Linux, debe leer esto aquí: