Búsqueda de sitios web

4 formas de deshabilitar/bloquear ciertas actualizaciones de paquetes usando el comando Yum


Package Manager es un software que permite al usuario instalar un nuevo software, actualizar el sistema o actualizar cualquier software específico y ese tipo de cosas. En el caso de los sistemas basados en Linux en los que un software tiene muchas dependencias que deben estar presentes en el sistema para una instalación completa de ese software, dicho software, como el administrador de paquetes, se convierte en una herramienta muy necesaria en todos los sistemas.

Cada distribución de Linux viene con su administrador de paquetes predeterminado para las funcionalidades mencionadas anteriormente, pero de todas estas, las más encontradas son: yum en los sistemas RHEL y Fedora. (donde actualmente está siendo reemplazado por DNF desde Fedora 22+ en adelante) y apt de Debian.

Si está buscando la herramienta APT para bloquear o deshabilitar ciertas actualizaciones de paquetes específicos, entonces debería leer este artículo.

Dnf o Danified yum está reemplazando a yum en los sistemas Fedora, que es otro de nuestra lista. Si se exploran correctamente, estos administradores de paquetes se pueden utilizar para las siguientes funcionalidades:

  1. Instalación de nuevo software desde el repositorio.
  2. Resuelva las dependencias del software instalándolas antes de instalar el software.
  3. Mantener base de datos de dependencias de cada software.
  4. Versión degradada de cualquier software existente.
  5. Actualización de la versión del kernel.
  6. Listado de paquetes disponibles para instalación.

Ya hemos cubierto artículos detallados por separado sobre cada administrador de paquetes individual con ejemplos prácticos; debe leerlos para controlar y administrar la administración de paquetes en sus respectivas distribuciones de Linux.

Lea también:

  1. Domina el comando Yum con estos 20 ejemplos prácticos
  2. 27 comandos DNF para administrar paquetes en las versiones Fedora 22+
  3. Aprenda 25 comandos APT para administrar paquetes de Ubuntu

En el artículo, veremos cómo bloquear/deshabilitar ciertas actualizaciones de paquetes usando el administrador de paquetes Yum en los sistemas RHEL/CentOS y Fedora (aplicable hasta Fedora 21, versión más reciente de Fedora). se envía con dnf como administrador de paquetes predeterminado).

Deshabilitar/bloquear actualizaciones de paquetes usando Yum

Yellow dog Updater, Modified (yum) es una herramienta de administración de paquetes en distribuciones basadas en RedHat como CentOS y Fedora. A continuación se analizan varias estrategias utilizadas para bloquear/deshabilitar actualizaciones de paquetes usando Yum:

1. Deshabilite permanentemente el paquete para instalarlo o actualizarlo

1. Abra y edite el archivo yum.conf, que se encuentra en /etc/yum.conf o en /etc/ yum/yum.conf.

Se parece 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=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
...

Aquí, para excluir cierto paquete de la instalación o actualización, solo necesita agregar la variable de exclusión junto con el nombre del paquete que desea excluir. Por ejemplo, si quiero excluir todos los paquetes python-3 para que no se actualicen, simplemente agregaré la siguiente línea a yum.conf:

exclude=python-3*

Para excluir más de un paquete, simplemente separe sus nombres por espacio.

exclude=httpd php 
[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=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
exclude=python-3*        [Exclude Single Package]
exclude=httpd php        [Exclude Multiple Packages]
...

Nota: para incluir estos paquetes, ignorando las entradas en yum.conf, use “-disableexcludes” y configure a all|main|repoid, donde 'main' son los ingresados en yum.conf y 'repoid' son aquellos cuya exclusión se especifica en el directorio repos.d, como se explica más adelante.

Ahora intentemos instalar o actualizar los paquetes especificados y veremos que el comando yum deshabilitará su instalación o actualización.

# yum install httpd php

Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
Nothing to do
# yum update httpd php

Loaded plugins: fastestmirror, langpacks, versionlock
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
No packages marked for update

2. Deshabilite temporalmente el paquete para instalarlo o actualizarlo

2. Lo anterior fue una solución permanente para excluir un paquete ya que, a menos que se edite el archivo, ese paquete no se actualizará. Aquí también hay una solución temporal para esto. Justo en el momento en que vaya a realizar una actualización, use el modificador -x en el comando yum para excluir el paquete que no desea actualizar, como:

yum -x python-3 update

El comando anterior actualizará todos los paquetes cuyas actualizaciones estén disponibles, excluyendo python-3 en su sistema.

Aquí, para excluir varios paquetes, utilice -x varias veces o separe los nombres de los paquetes con ',' en un solo cambio.

yum -x httpd -x php update
OR
yum -x httpd,php update

3. El uso del interruptor --exclude funciona igual que -x, solo es necesario reemplazar -x con –excluir y pasarle ',' una lista separada de nombres de paquetes.

yum --exclude httpd,php

3. Deshabilite las actualizaciones de paquetes usando el repositorio

4. Para cualquier paquete instalado desde cualquier fuente externa mediante la adición de un repositorio, existe otra forma de detener su actualización en el futuro. Esto se puede hacer editando su archivo .repo que se crea en /etc/yum/repos.d/ o /etc/yum.repos.d directorio .

Agregue la opción de exclusión con el nombre del paquete en el repositorio. Como: para excluir cualquier paquete, diga wine del repo de epel, agregue la siguiente línea en el archivo epel.repo:

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

Ahora intente actualizar el paquete wine; obtendrá un error como el que se muestra a continuación:

# yum update wine

Loaded plugins: fastestmirror, langpacks, versionlock
epel/x86_64/metalink                                    | 5.6 kB     00:00     
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: mirror.wanxp.id
 * extras: mirror.nbrc.ac.in
 * updates: mirror.nbrc.ac.in
No Match for argument: wine
No package wine available.
No packages marked for update

4. Deshabilite la actualización del paquete usando la opción de bloqueo de versión

5. Otra forma en yum de enmascarar la versión de cualquier paquete, haciéndolo así no disponible para la actualización, es usar la opción versionlock de yum, pero para hacer esto, Debe estar instalado el paquete yum-plugin-versionlock en el sistema.

yum -y install yum-versionlock

Por ejemplo, para bloquear la versión del paquete, diga httpd solo para 2.4.6, simplemente escriba el siguiente comando como root.

yum versionlock add httpd
Salida de muestra
Loaded plugins: fastestmirror, langpacks, versionlock
Adding versionlock on: 0:httpd-2.4.6-40.el7.centos
versionlock added: 1

Para ver los paquetes bloqueados, utilice el siguiente comando que enumerará los paquetes cuya versión ha sido bloqueada.

yum versionlock list httpd
Salida de muestra
Loaded plugins: fastestmirror, langpacks, versionlock
0:httpd-2.4.6-40.el7.centos.*
versionlock list done

Conclusión

Estos son algunos consejos que le ayudarán a desactivar/bloquear las actualizaciones de paquetes utilizando el administrador de paquetes yum. Si tienes algún otro truco para hacer lo mismo, puedes comentarlo con nosotros.