Cómo excluir paquetes específicos de Yum Update
En este artículo, le mostraremos cómo excluir paquetes específicos de la actualización mediante el administrador de paquetes Yum. Periódicamente, es posible que desee actualizar su sistema CentOS o RHEL, pero omita ciertos paquetes, especialmente si es probable que las actualizaciones interfieran con ciertas aplicaciones importantes del sistema.
Consulte también : Cómo excluir un paquete específico de apt-get Upgrade
Excluir paquetes específicos de la actualización
Comenzamos verificando primero qué paquetes deben actualizarse utilizando el administrador de paquetes Yum en Centos 7, como se muestra a continuación.
yum list updates | cat -n
Salida de muestra
1 Loaded plugins: amazon-id, rhui-lb, search-disabled-repos 2 Updated Packages 3 bind-libs-lite.x86_64 32:9.9.4-51.el7_4.2 rhui-REGION-rhel-server-releases 4 bind-license.noarch 32:9.9.4-51.el7_4.2 rhui-REGION-rhel-server-releases 5 binutils.x86_64 2.25.1-32.base.el7_4.2 rhui-REGION-rhel-server-releases 6 cloud-init.x86_64 0.7.9-9.el7_4.2 rhui-REGION-rhel-server-releases 7 dhclient.x86_64 12:4.2.5-58.el7_4.1 rhui-REGION-rhel-server-releases 8 dhcp-common.x86_64 12:4.2.5-58.el7_4.1 rhui-REGION-rhel-server-releases 9 dhcp-libs.x86_64 12:4.2.5-58.el7_4.1 rhui-REGION-rhel-server-releases 10 glibc.x86_64 2.17-196.el7_4.2 rhui-REGION-rhel-server-releases 11 glibc-common.x86_64 2.17-196.el7_4.2 rhui-REGION-rhel-server-releases 12 initscripts.x86_64 9.49.39-1.el7_4.1 rhui-REGION-rhel-server-releases 13 iwl7265-firmware.noarch 22.0.7.0-58.el7_4 rhui-REGION-rhel-server-releases 14 kernel.x86_64 3.10.0-693.17.1.el7 rhui-REGION-rhel-server-releases 15 kernel-tools.x86_64 3.10.0-693.17.1.el7 rhui-REGION-rhel-server-releases 16 kernel-tools-libs.x86_64 3.10.0-693.17.1.el7 rhui-REGION-rhel-server-releases
Para excluir un paquete específico de la actualización, la sintaxis sería la siguiente
yum --exclude=packagename* update
Por ejemplo, si desea excluir el paquete glibc, que es el décimo de nuestra lista, ejecute
# yum --exclude=glibc* update
Salida de muestra
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos Resolving Dependencies --> Running transaction check ---> Package bind-libs-lite.x86_64 32:9.9.4-51.el7_4.1 will be updated ---> Package bind-libs-lite.x86_64 32:9.9.4-51.el7_4.2 will be an update ---> Package bind-license.noarch 32:9.9.4-51.el7_4.1 will be updated ---> Package bind-license.noarch 32:9.9.4-51.el7_4.2 will be an update ---> Package binutils.x86_64 0:2.25.1-32.base.el7_4.1 will be updated ---> Package binutils.x86_64 0:2.25.1-32.base.el7_4.2 will be an update ---> Package cloud-init.x86_64 0:0.7.9-9.el7_4.1 will be updated ---> Package cloud-init.x86_64 0:0.7.9-9.el7_4.2 will be an update ---> Package dhclient.x86_64 12:4.2.5-58.el7 will be updated ---> Package dhclient.x86_64 12:4.2.5-58.el7_4.1 will be an update ---> Package dhcp-common.x86_64 12:4.2.5-58.el7 will be updated ---> Package dhcp-common.x86_64 12:4.2.5-58.el7_4.1 will be an update ---> Package dhcp-libs.x86_64 12:4.2.5-58.el7 will be updated ---> Package dhcp-libs.x86_64 12:4.2.5-58.el7_4.1 will be an update ---> Package initscripts.x86_64 0:9.49.39-1.el7 will be updated ---> Package initscripts.x86_64 0:9.49.39-1.el7_4.1 will be an update
Como habrá notado, el paquete glibc no está en nuestra lista porque lo excluimos en nuestro comando.
Para excluir una lista de paquetes, ejecute
# yum --exclude=glibc* --exclude=cloud-init* update
Alternativamente, puede usar el comando a continuación para lograr el mismo propósito.
yum -x 'packagename*' update
Para excluir más de un paquete con el mismo comando, ejecute el siguiente comando
yum -x 'packageName1*' -x 'packageName2*' update
Deshabilitar permanentemente paquetes específicos para que no se actualicen en Yum
Para evitar que paquetes específicos obtengan actualizaciones, abra el siguiente archivo de configuración con un editor de texto de su elección
/etc/yum.conf
Al final del archivo de configuración, agregue lo siguiente
exclude=samba httpd mariadb php
Lo anterior excluye de la actualización los paquetes samba, httpd, MariaDB, PHP.
Para excluir paquetes de 32 bits
excluir = *. i? 86 * .i686
Ahora, si intenta actualizar cada uno de los paquetes individuales, aparecerá el mensaje «No hay paquetes marcados para actualizar»
Salida de muestra
[root@ip-172-31-16-136 ec2-user]# yum update httpd Loaded plugins: amazon-id, rhui-lb, search-disabled-repos rhui-REGION-client-config-server-7 | 2.9 kB 00:00:00 rhui-REGION-rhel-server-releases | 3.5 kB 00:00:00 rhui-REGION-rhel-server-rh-common | 3.8 kB 00:00:00 No packages marked for update
[root@ip-172-31-16-136 ec2-user]# yum update samba Loaded plugins: amazon-id, rhui-lb, search-disabled-repos No packages marked for update
[root@ip-172-31-16-136 ec2-user]# yum update mariadb Loaded plugins: amazon-id, rhui-lb, search-disabled-repos No packages marked for update
[root@ip-172-31-16-136 ec2-user]# yum update php Loaded plugins: amazon-id, rhui-lb, search-disabled-repos No packages marked for update
Excluir un repositorio de la actualización
En primer lugar, es posible que desee echar un vistazo a los repositorios disponibles en su sistema. para lograr esto, ejecute el siguiente comando
yum repolist
Producción
repo id repo name status Webmin Webmin Distribution Neutral 111 base/7/x86_64 CentOS-7 - Base 9,591 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,382 extras/7/x86_64 CentOS-7 - Extras 392 filebeat/x86_64 Filebeat for ELK clients 44 google-chrome google-chrome 3 ius/x86_64 IUS Community Packages for Enterprise Linux 7 - x86_64 468 kibana-5.x Kibana repository for 5.x packages 338 logstash-5.x Elastic repository for 5.x packages 338 nux-dextop/x86_64 Nux.Ro RPMs for general desktop use 2,575 updates/7/x86_64 CentOS-7 - Updates 1,962 repolist: 28,204
Para deshabilitar la actualización de un repositorio, usamos la opción ‘–disablerepo = reponame’ junto con el comando de actualización yum.
yum --disablerepo=reponame update
Alternativamente, el comando ‘actualizar’ puede preceder a la opción ‘disablerepo = reponame’ como se muestra
yum update -disablerepo=reponame
En el ejemplo anterior, si quiero deshabilitar la actualización de kibana-5.x, ejecutaré
yum --disablerepo=kibana-5.x update
Para excluir varios repositorios en una línea, separe los repositorios con una coma como se muestra a continuación
yum update--disablerepo=kibana-5.x,logstash-5.x
Lo que hace esto es que actualizará el resto de los repositorios pero dejará fuera kibana-5.x
Excluir un repositorio de la actualización usando parámetros habilitados
En lugar de deshabilitar la actualización del repositorio en el comando yum update, puede establecer el parámetro ‘habilitado’ en 0 en el archivo de configuración del repositorio.
El archivo de configuración del repositorio se encuentra en /etc/yum.repos.d como se muestra
[root@epicenter ~]# ls -l /etc/yum.repos.d/ total 84 -rw-r--r--. 1 root root 1664 Aug 30 2017 CentOS-Base.repo -rw-r--r--. 1 root root 1309 Aug 30 2017 CentOS-CR.repo -rw-r--r--. 1 root root 649 Aug 30 2017 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 314 Aug 30 2017 CentOS-fasttrack.repo -rw-r--r--. 1 root root 630 Aug 30 2017 CentOS-Media.repo -rw-r--r--. 1 root root 1331 Aug 30 2017 CentOS-Sources.repo -rw-r--r--. 1 root root 3830 Aug 30 2017 CentOS-Vault.repo -rw-r--r-- 1 root root 390 Jan 28 20:05 decathorpe-elementary-stable-fedora-25.repo -rw-r--r-- 1 root root 391 Jan 28 21:03 decathorpe-elementary-stable.repo -rw-r--r-- 1 root root 951 Oct 2 20:44 epel.repo -rw-r--r-- 1 root root 1050 Oct 2 20:44 epel-testing.repo -rw-r--r--. 1 root root 178 Oct 4 13:01 filebeat.repo -rw-r--r-- 1 root root 173 Jan 10 12:54 google-chrome.repo -rw-r--r-- 1 root root 1150 Feb 23 2017 ius-archive.repo -rw-r--r-- 1 root root 1131 Feb 23 2017 ius-dev.repo -rw-r--r-- 1 root root 1073 Feb 23 2017 ius.repo -rw-r--r-- 1 root root 1150 Feb 23 2017 ius-testing.repo -rw-r--r--. 1 root root 212 Oct 3 12:05 kibana.repo -rw-r--r--. 1 root root 216 Oct 3 14:01 logstash.repo -rw-r--r-- 1 root root 477 Jul 31 2014 nux-dextop.repo -rw-r--r--. 1 root root 163 Oct 3 11:23 webmin.repo
Para excluir el repositorio kibana-5.x, abra el archivo de configuración con un editor de texto y establezca la opción ‘habilitado’ en 0 como se muestra a continuación.
vim /etc/yum.repos.d/kibana.repo
Si ejecuta yum repolist, el repositorio no aparecerá en los resultados como se muestra
repo id repo name status Webmin Webmin Distribution Neutral 111 base/7/x86_64 CentOS-7 - Base 9,591 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,382 extras/7/x86_64 CentOS-7 - Extras 392 filebeat/x86_64 Filebeat for ELK clients 44 google-chrome google-chrome 3 ius/x86_64 IUS Community Packages for Enterprise Linux 7 - x86_64 468 logstash-5.x Elastic repository for 5.x packages 338 nux-dextop/x86_64 Nux.Ro RPMs for general desktop use 2,575 updates/7/x86_64 CentOS-7 - Updates 1,962 repolist: 27,866
Esto implica que los paquetes del repositorio de kibana no se actualizarán cuando se ejecute el comando yum update.
Gracias por tomarse su tiempo en este tutorial. Esperamos haber abordado el problema sobre cómo puede deshabilitar paquetes específicos en Yum. No dudes en intentarlo y comunicarte con nosotros con tus comentarios.