Ricerca nel sito web

4 modi per disabilitare/bloccare determinati aggiornamenti dei pacchetti utilizzando il comando Yum


Package Manager è un software che consente a un utente in caso di installazione di nuovo software, aggiornamento del sistema o aggiornamento di software specifico e cose del genere. In caso di sistemi basati su Linux in cui un software ha molte dipendenze che devono essere presenti sul sistema per un'installazione completa di quel software, il gestore di pacchetti di tale software diventa uno strumento molto necessario su ogni sistema.

Ogni distribuzione Linux viene fornita con il proprio gestore di pacchetti predefinito per le funzionalità sopra indicate, ma tra tutte quelle più diffuse sono: yum sui sistemi RHEL e Fedora (dove viene attualmente sostituito con DNF da Fedora 22+ in poi) e apt da Debian.

Se stai cercando lo strumento APT per bloccare o disabilitare determinati aggiornamenti di pacchetti specifici, dovresti leggere questo articolo.

Dnf o Danified yum sta sostituendo yum sui sistemi Fedora che è un altro nel nostro elenco. Se esplorati correttamente, questi gestori di pacchetti possono essere utilizzati per le seguenti funzionalità:

  1. Installazione di nuovo software dal repository.
  2. Risolvere le dipendenze del software installando tali dipendenze prima di installare il software.
  3. Mantenimento del database delle dipendenze di ciascun software.
  4. Eseguire il downgrade della versione di qualsiasi software esistente.
  5. Aggiornamento della versione del kernel.
  6. Elenco dei pacchetti disponibili per l'installazione.

Abbiamo già trattato articoli dettagliati separatamente su ogni singolo gestore di pacchetti con esempi pratici, dovresti leggerli per controllare e gestire la gestione dei pacchetti nelle rispettive distribuzioni Linux.

Leggi anche:

  1. Padroneggiare Yum Command con questi 20 esempi pratici
  2. 27 comandi DNF per gestire i pacchetti nelle versioni Fedora 22+
  3. Scopri 25 comandi APT per gestire i pacchetti Ubuntu

Nell'articolo vedremo come bloccare/disabilitare determinati aggiornamenti di pacchetti utilizzando il gestore pacchetti Yum nei sistemi RHEL/CentOS e Fedora (applicabile fino a Fedora 21, successiva versione Fedora più recente viene fornito con dnf come gestore di pacchetti predefinito).

Disabilita/Blocca gli aggiornamenti dei pacchetti utilizzando Yum

Yellow dog Updater, Modified (yum) è uno strumento di gestione dei pacchetti nelle distribuzioni basate su RedHat come CentOS e Fedora. Di seguito vengono discusse varie strategie utilizzate per bloccare/disabilitare gli aggiornamenti dei pacchetti utilizzando Yum:

1. Disattiva permanentemente il pacchetto per l'installazione o l'aggiornamento

1. Apri e modifica il file yum.conf, che si trova in /etc/yum.conf o in /etc/ yum/yum.conf.

Sembra di seguito:

[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
...

Qui, per escludere determinati pacchetti dall'installazione o dall'aggiornamento, devi solo aggiungere la variabile di esclusione insieme al nome del pacchetto che desideri escludere. Ad esempio, se voglio escludere tutti i pacchetti python-3 dall'aggiornamento, aggiungerò semplicemente la seguente riga a yum.conf:

exclude=python-3*

Per escludere più di un pacchetto è sufficiente separare i nomi con uno spazio.

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: per includere questi pacchetti, ignorando le voci in yum.conf, utilizzare “-disableexcludes” e impostare in all|main|repoid, dove 'main' sono quelli inseriti in yum.conf e 'repoid' sono quelli la cui esclusione è specificata nella directory repos.d, come spiegato più avanti.

Ora proviamo a installare o aggiornare i pacchetti specificati e vediamo che il comando yum ne disabiliterà l'installazione o l'aggiornamento.

# 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. Disabilitare temporaneamente il pacchetto per l'installazione o l'aggiornamento

2. Sopra c'era una soluzione permanente per escludere un pacchetto poiché, a meno che il file non venga modificato, quel pacchetto non verrà aggiornato. Ecco una soluzione temporanea anche per questo. Proprio nel momento in cui esegui qualsiasi aggiornamento, usa l'opzione -x nel comando yum per escludere il pacchetto che non desideri aggiornare, come:

yum -x python-3 update

Il comando precedente aggiornerà tutti i pacchetti i cui aggiornamenti sono disponibili, escluso python-3 sul tuo sistema.

Qui, per escludere più pacchetti, utilizzare -x più volte o separare i nomi dei pacchetti con ',' in un singolo interruttore.

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

3. L'uso dell'opzione --exclude funziona come -x, basta sostituire -x con –exclude e passagli un elenco separato di nomi di pacchetti ','.

yum --exclude httpd,php

3. Disabilitare gli aggiornamenti dei pacchetti utilizzando il repository

4. Per qualsiasi pacchetto installato da qualsiasi fonte esterna tramite l'aggiunta di un repository, esiste un altro modo per interromperne l'aggiornamento in futuro. Questo può essere fatto modificando il suo file .repo creato in /etc/yum/repos.d/ o /etc/yum.repos.d< directory.

Aggiungi l'opzione di esclusione con il nome del pacchetto nel repo. Ad esempio: per escludere qualsiasi pacchetto, ad esempio wine, da epel repo, aggiungi la seguente riga nel file 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

Ora prova ad aggiornare il pacchetto wine, riceverai un errore come mostrato di seguito:

# 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. Disabilita aggiornamento pacchetto utilizzando l'opzione versionlock

5. Un altro modo in yum per mascherare la versione di qualsiasi pacchetto rendendolo così non disponibile per l'aggiornamento, è usare l'opzione versionlock di yum, ma per fare questo, tu deve essere installato il pacchetto yum-plugin-versionlock sul sistema.

yum -y install yum-versionlock

Ad esempio, per bloccare solo la versione del pacchetto da httpd a 2.4.6, basta scrivere il comando seguente come root.

yum versionlock add httpd
Uscita del campione
Loaded plugins: fastestmirror, langpacks, versionlock
Adding versionlock on: 0:httpd-2.4.6-40.el7.centos
versionlock added: 1

Per visualizzare i pacchetti bloccati, utilizzare il comando seguente elencherà i pacchetti la cui versione è stata bloccata.

yum versionlock list httpd
Uscita del campione
Loaded plugins: fastestmirror, langpacks, versionlock
0:httpd-2.4.6-40.el7.centos.*
versionlock list done

Conclusione

Questi sono alcuni suggerimenti che ti aiuteranno a disabilitare/bloccare gli aggiornamenti dei pacchetti utilizzando il gestore pacchetti yum. Se hai altri trucchi per fare le stesse cose, puoi commentarli con noi.