LINUX

Come escludere determinati pacchetti da Yum Update

In questo articolo, ti mostreremo come escludere determinati pacchetti dall’aggiornamento utilizzando il gestore pacchetti Yum. Periodicamente, potresti voler aggiornare il tuo sistema CentOS o RHEL, ma saltare alcuni pacchetti, soprattutto se è probabile che gli aggiornamenti interferiscano con alcune delle principali applicazioni del sistema.

Guarda anche : Come escludere un pacchetto specifico da apt-get Upgrade

Escludi alcuni pacchetti dall’aggiornamento

Iniziamo controllando prima quali pacchetti devono essere aggiornati utilizzando il gestore pacchetti Yum su Centos 7 come mostrato di seguito.

yum list updates | cat -n

Esempio di output

 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

Per escludere un particolare pacchetto dall’aggiornamento, la sintassi sarebbe la seguente

yum --exclude=packagename* update

Ad esempio, se vuoi escludere il pacchetto glibc che è il numero 10 nella nostra lista, esegui

# yum --exclude=glibc* update

Esempio di output

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

Come avrai notato, il pacchetto glibc non è nella nostra lista perché lo abbiamo escluso dal nostro ordine.

Per escludere un elenco di pacchetti eseguire

# yum --exclude=glibc* --exclude=cloud-init* update

In alternativa, puoi utilizzare il comando seguente per raggiungere lo stesso obiettivo.

yum -x 'packagename*' update

Per escludere più di un pacchetto utilizzando lo stesso comando, eseguire il comando seguente

yum -x 'packageName1*' -x 'packageName2*' update

Disattiva permanentemente alcuni pacchetti dall’aggiornamento in Yum

Per impedire a determinati pacchetti di ricevere aggiornamenti, apri il seguente file di configurazione con un editor di testo a tua scelta

/etc/yum.conf
escludere alcuni pacchetti dall'aggiornamento in yum

Alla fine del file di configurazione, aggiungi quanto segue

exclude=samba httpd mariadb php

Quanto sopra esclude dall’aggiornamento i pacchetti samba, httpd, MariaDB, PHP.

Per escludere i pacchetti a 32 bit

escludere=*.i?86 *.i686

Ora, se si tenta di aggiornare ciascuno dei singoli pacchetti, verrà visualizzato il messaggio “Nessun pacchetto contrassegnato per l’aggiornamento”.

Esempio di output

[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

Escludi un repository dall’aggiornamento

Per prima cosa potresti voler dare un’occhiata ai repository disponibili sul tuo sistema per ottenere ciò, esegui il comando qui sotto

yum repolist

Uscita

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

Per disabilitare l’aggiornamento di un repository, utilizziamo l’opzione “–disablerepo=reponame” con il comando yum update.

yum --disablerepo=reponame update

In alternativa, il comando “update” può precedere l’opzione “disablerepo=reponame”, come mostrato

yum update -disablerepo=reponame

Nell’esempio sopra, se voglio disabilitare kibana-5.x dall’aggiornamento, eseguirò

yum --disablerepo=kibana-5.x update

Per escludere più repository su una singola riga, separa i repository utilizzando una virgola come mostrato di seguito

yum update--disablerepo=kibana-5.x,logstash-5.x

Quello che fa è aggiornare il resto dei repository ma escludere kibana-5.x

Escludere un repository dall’aggiornamento utilizzando i parametri abilitati

Invece di disabilitare l’aggiornamento del repository nel comando yum update, puoi impostare il parametro “enabled” su 0 nel file di configurazione del repository.
Il file di configurazione del repository si trova in /etc/yum.repos.d come mostrato

[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

Per escludere il repository kibana-5.x, apri il file di configurazione utilizzando un editor di testo e imposta l’opzione “enabled” su 0 come mostrato di seguito.

vim /etc/yum.repos.d/kibana.repo
escludere i pacchetti dall'aggiornamento in yum

Se esegui yum repolist, il repository non apparirà nei risultati come mostrato

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

Ciò implica che qualsiasi pacchetto nel repository kibana non verrà aggiornato quando viene eseguito il comando yum update.

Grazie per il tuo tempo in questo tutorial. Speriamo di aver risolto il problema di come disabilitare determinati pacchetti in Yum. Sentiti libero di provare e tornare da noi con il tuo feedback.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close