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


Upravitelj paketa je softver koji omogućava korisniku u slučaju instalacije novog softvera, nadogradnje sistema ili ažuriranja bilo kojeg specifičnog softvera i slično. U slučaju Linux baziranih sistema u kojima jedan softver ima mnogo zavisnosti koje su potrebne da budu prisutne na sistemu za potpunu instalaciju tog softvera, takav softver poput menadžera paketa postaje preko potreban alat na svakom sistemu.

Svaka Linux distribucija se isporučuje sa svojim zadanim upraviteljem paketa za gore navedene funkcionalnosti, ali od svih ovih najčešće se nalaze: yum na RHEL i Fedora sistemima (gdje se trenutno zamjenjuje sa 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 sistemima koji je još jedan na našoj listi. Ako se pravilno istraže, ovi upravitelji paketa mogu se koristiti za sljedeće funkcionalnosti:

  1. Instaliranje novog softvera iz spremišta.
  2. Riješite ovisnosti softvera instaliranjem tih ovisnosti prije instaliranja softvera.
  3. Održavanje baze podataka zavisnosti svakog softvera.
  4. Vratite verziju bilo kojeg postojećeg softvera.
  5. Nadogradnja verzije kernela.
  6. Spisak paketa dostupnih za instalaciju.

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

Pročitajte također:

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

U članku ćemo vidjeti kako zaključati/onemogućiti određena ažuriranja paketa koristeći Yum menadžer paketa u RHEL/CentOS i Fedora sistemima (primenjivo do Fedora 21, kasnije novije Fedora verzije isporučuje se sa dnf kao zadanim menadžerom paketa).

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

Yellow dog Updater, Modified (yum) je alat za upravljanje paketima u RedHat baziranim distribucijama kao što su CentOS i Fedora. Različite strategije koje se koriste za zaključavanje/onemogućavanje ažuriranja paketa pomoću Yum-a su razmotrene u nastavku:

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/ yum/yum.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, da biste isključili određeni paket iz instalacije ili nadogradnje, samo trebate dodati varijablu exclude zajedno s imenom paketa koji želite isključiti. Na primjer, ako želim isključiti sve python-3 pakete iz ažuriranja, onda ću samo dodati sljedeći red u yum.conf:

exclude=python-3*

Za više od jednog paketa za izuzimanje 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: da uključite ove pakete, zanemarujući unose u yum.conf, koristite “-disableexcludes ” i postavite na sve|glavne|repoid, gdje su 'main' oni uneseni u yum.conf i 'repoid' > su oni čije je isključenje navedeno u repos.d direktoriju, kao što je objašnjeno kasnije.

Sada pokušajmo da instaliramo ili ažuriramo navedene pakete i vidimo 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 se taj paket neće ažurirati ako se fajl ne uredi. Evo privremenog rješenja i za ovo. Upravo u vrijeme kada idete na ažuriranje, koristite prekidač -x u yum komandi da isključite paket koji ne želite ažurirati, kao što je:

yum -x python-3 update

Gornja komanda će ažurirati sve pakete čija su ažuriranja dostupna, osim python-3 na vašem sistemu.

Ovdje, za izuzimanje više paketa, koristite -x više puta, ili razdvojite nazive paketa sa ',' u jednom prekidaču.

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

3. Korištenje prekidača --exclude radi isto kao -x, samo trebate zamijeniti -x sa –isključi i proslijediti ',' odvojenu listu naziva paketa.

yum --exclude httpd,php

3. Onemogućite ažuriranja paketa koristeći Repozitorijum

4. Za bilo koji paket instaliran iz bilo kojeg vanjskog izvora dodavanjem spremišta, postoji još jedan način da zaustavite njegovu nadogradnju u budućnosti. Ovo se može uraditi uređivanjem njegove datoteke .repo koja je kreirana u /etc/yum/repos.d/ ili /etc/yum.repos.d< direktorij.

Dodajte opciju isključivanja sa imenom paketa u repo. Sviđa mi se: da izuzmete bilo koji paket recimo vino iz epel repo, dodajte sljedeći red 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 wine paket, dobićete grešku kao što je prikazano ispod:

# 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 koristeći opciju zaključavanja verzije

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

yum -y install yum-versionlock

Na primjer, da biste zaključali verziju paketa, recite httpd samo na 2.4.6, samo napišite sljedeću naredbu kao root.

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

Za pregled zaključanih paketa, koristite sljedeću naredbu koja će prikazati pakete koji su zaključani u verziji.

yum versionlock list httpd
Sample Output
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 menadžera paketa. Ako imate još neke trikove da uradite iste stvari, možete ih komentirati kod nas.