4 načina za onemogućavanje/zaključavanje određenih ažuriranja paketa pomoću naredbe Yum


Upravitelj paketa je softver koji korisniku omogućuje u slučaju instalacije novog softvera, nadogradnju sustava ili ažuriranje bilo kojeg specifičnog softvera i takve stvari. U slučaju sustava temeljenih na Linuxu u kojima jedan softver ima mnogo ovisnosti koje moraju biti prisutne u sustavu za potpunu instalaciju tog softvera, takav softver poput upravitelja paketa postaje prijeko potreban alat na svakom sustavu.

Svaka distribucija Linuxa isporučuje se sa svojim zadanim upraviteljem paketa za gore navedene funkcije, ali od svih ovih najčešće se nalaze: yum na RHEL i Fedora sustavima (gdje se trenutno zamjenjuje s DNF od Fedora 22+ nadalje) i apt iz Debiana.

Ako tražite APT alat za blokiranje ili onemogućavanje određenih ažuriranja paketa, trebali biste pročitati ovaj članak.

Dnf ili Danified yum zamjenjuje yum na Fedora sustavima koji je još jedan na našem popisu. Ako se pravilno istraže, ovi upravitelji paketa mogu se koristiti za sljedeće funkcije:

  1. Instalacija novog softvera iz repozitorija.
  2. Riješite ovisnosti softvera instaliranjem tih ovisnosti prije instaliranja softvera.
  3. Održavanje baze podataka ovisnosti svakog softvera.
  4. Vratite verziju postojećeg softvera na stariju verziju.
  5. Nadogradnja verzije kernela.
  6. Ispis paketa dostupnih za instalaciju.

Već smo zasebno obradili detaljne članke o svakom pojedinačnom upravitelju paketa s praktičnim primjerima, trebali biste ih pročitati kako biste kontrolirali i upravljali upravljanjem paketima u svojim distribucijama Linuxa.

Pročitajte također:

  1. Savladajte Yum naredbu uz ovih 20 praktičnih primjera
  2. 27 DNF naredbi za upravljanje paketima u Fedora 22+ verzijama
  3. Naučite 25 APT naredbi za upravljanje Ubuntu paketima

U članku ćemo vidjeti kako zaključati/onemogućiti određena ažuriranja paketa pomoću upravitelja paketa Yum u sustavima RHEL/CentOS i Fedora (primjenjivo do Fedora 21, kasnije novije verzije Fedora isporučuje se s dnf-om kao zadanim upraviteljem paketa).

Onemogući/zaključaj ažuriranja paketa koristeći Yum

Yellow dog Updater, Modified (yum) je alat za upravljanje paketima u distribucijama temeljenim na RedHatu kao što su CentOS i Fedora. U nastavku se raspravlja o raznim strategijama koje se koriste za zaključavanje/onemogućavanje ažuriranja paketa pomoću Yuma:

1. Trajno onemogućite paket za instalaciju ili ažuriranje

1. Otvorite i uredite datoteku yum.conf koja se nalazi u /etc/yum.conf ili u /etc/ njam/njam.conf.

To izgleda ovako:

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

Ovdje, kako biste isključili određeni paket iz instalacije ili nadgradnje, samo trebate dodati varijablu za isključivanje uz naziv paketa koji želite isključiti. Na primjer, ako želim isključiti sve pakete python-3 iz ažuriranja, tada ću samo dodati sljedeći red u yum.conf:

exclude=python-3*

Za više od jednog paketa za isključivanje samo razdvojite njihova imena razmakom.

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

Napomena: za uključivanje ovih paketa, zanemarujući unose u yum.conf, koristite “-disableexcludes” i postavite to u all|main|repoid, gdje su 'main' oni uneseni u yum.conf i 'repoid' su oni čije je isključenje navedeno u direktoriju repos.d, kao što je objašnjeno kasnije.

Pokušajmo sada instalirati ili ažurirati navedene pakete i vidjeti da će naredba yum onemogućiti njihovu instalaciju ili ažuriranje.

# 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. Privremeno onemogućite paket za instalaciju ili ažuriranje

2. Gore je bilo trajno rješenje za izuzimanje paketa jer ako se datoteka ne uredi, taj se paket neće ažurirati. Evo privremenog rješenja i za ovo. Samo u vrijeme kada idete na bilo koje ažuriranje, koristite -x prekidač u yum naredbi da isključite paket koji ne želite ažurirati, kao što je:

yum -x python-3 update

Gornja naredba ažurirat će sve pakete čija su ažuriranja dostupna, isključujući python-3 na vašem sustavu.

Ovdje, za izuzimanje više paketa, upotrijebite -x više puta ili odvojite nazive paketa s ',' u jednom prekidaču.

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

3. Korištenje prekidača --exclude funkcionira isto kao -x, samo trebate zamijeniti -x s –isključi i proslijedi mu ',' odvojeni popis naziva paketa.

yum --exclude httpd,php

3. Onemogućite ažuriranje paketa pomoću repozitorija

4. Za bilo koji paket instaliran iz bilo kojeg vanjskog izvora putem dodavanja repozitorija, postoji još jedan način da se zaustavi njegova nadogradnja u budućnosti. To se može učiniti uređivanjem njegove .repo datoteke koja je stvorena u /etc/yum/repos.d/ ili /etc/yum.repos.d< imenik.

Dodajte opciju isključivanja s nazivom paketa u repo. Kao: da biste isključili bilo koji paket recimo wine iz epel repo, dodajte sljedeći redak u datoteku 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

Sada pokušajte ažurirati paket wine, dobit ćete pogrešku kao što je prikazano u nastavku:

# 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. Onemogućite ažuriranje paketa pomoću opcije zaključavanja verzije

5. Još jedan način u yum-u da maskirate verziju bilo kojeg paketa i tako ga učinite nedostupnim za nadogradnju je korištenje opcije versionlock za yum, ali da biste to učinili, paket yum-plugin-versionlock mora biti instaliran na sustavu.

yum -y install yum-versionlock

Na primjer, za zaključavanje verzije paketa recite httpd samo na 2.4.6, samo napišite sljedeću naredbu kao root.

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

Za pregled zaključanih paketa upotrijebite sljedeću naredbu koja će ispisati pakete čija je verzija zaključana.

yum versionlock list httpd
Uzorak izlaza
Loaded plugins: fastestmirror, langpacks, versionlock
0:httpd-2.4.6-40.el7.centos.*
versionlock list done

Zaključak

Ovo je nekoliko savjeta koji će vam pomoći da onemogućite/zaključate ažuriranja paketa pomoću yum upravitelja paketa. Ako imate još neke trikove za iste stvari, možete ih komentirati s nama.