4 måter å deaktivere/låse visse pakkeoppdateringer ved å bruke Yum Command


Package Manager er programvare som tillater en bruker i tilfelle installasjon av ny programvare, oppgradering av systemet eller oppdatering av spesifikk programvare og slike ting. I tilfelle av Linux-baserte systemer der en programvare har mange avhengigheter som kreves for å være tilstede på systemet for en fullstendig installasjon av den programvaren, blir slik programvare som pakkebehandler et sårt nødvendig verktøy på hvert system.

Hver Linux-distribusjon leveres med sin standardpakkebehandler for ovennevnte funksjoner, men av alle disse mest funnet er: yumRHEL og Fedora-systemer (hvor den for øyeblikket erstattes med DNF fra Fedora 22+ og utover) og apt fra Debian.

Hvis du leter etter et APT-verktøy for å blokkere eller deaktivere visse spesifikke pakkeoppdateringer, bør du lese denne artikkelen.

Dnf eller Danified yum erstatter yumFedora-systemer som er en annen på listen vår. Hvis de utforskes på riktig måte, kan disse pakkeadministratorene brukes til følgende funksjoner:

  1. Installerer ny programvare fra depotet.
  2. Løs avhengigheter til programvaren ved å installere disse avhengighetene før du installerer programvaren.
  3. Vedlikeholde database over avhengigheter for hver programvare.
  4. Nedgrader versjon av eksisterende programvare.
  5. Oppgradering av kjerneversjonen.
  6. Listepakker tilgjengelig for installasjon.

Vi har allerede dekket detaljerte artikler separat om hver enkelt pakkeadministrator med praktiske eksempler, du bør lese dem for å kontrollere og administrere pakkeadministrasjon i dine respektive Linux-distribusjoner.

Les også:

  1. Mestre Yum Command med disse 20 praktiske eksemplene
  2. 27 DNF-kommandoer for å administrere pakker i Fedora 22+ versjoner
  3. Lær 25 APT-kommandoer for å administrere Ubuntu-pakker

I artikkelen vil vi se hvordan du låser/deaktiverer visse pakkeoppdateringer ved å bruke Yum-pakkebehandling i RHEL/CentOS og Fedora-systemer (gjelder til Fedora 21, senere nyere Fedora-versjon sendes med dnf som standard pakkebehandling).

Deaktiver/lås pakkeoppdateringer med Yum

Yellow dog Updater, Modified (yum) er pakkeadministrasjonsverktøy i RedHat-baserte distribusjoner som CentOS og Fedora. Ulike strategier som brukes til å låse/deaktivere pakkeoppdateringer ved å bruke Yum er diskutert nedenfor:

1. Deaktiver pakke permanent for installasjon eller oppdatering

1. Åpne og rediger yum.conf-filen, som ligger i /etc/yum.conf eller i /etc/ yum/yum.conf.

Det ser ut som nedenfor:

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

Her, for å ekskludere en viss pakke fra installasjon eller oppgradering, trenger du bare å legge til ekskluderingsvariabel sammen med navnet på pakken du ønsker å ekskludere. For eksempel, hvis jeg vil ekskludere alle python-3-pakkene fra å bli oppdatert, vil jeg bare legge til følgende linje til yum.conf:

exclude=python-3*

For å ekskludere mer enn én pakke, skiller du navnene deres med mellomrom.

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

Merk: for å inkludere disse pakkene, ignorer oppføringer i yum.conf, bruk "-disableexcludes " og sett det til all|main|repoid, der 'main' er de som er angitt i yum.conf og 'repoid' er de hvis ekskludering er spesifisert i repos.d-katalogen, som forklart senere.

La oss nå prøve å installere eller oppdatere de spesifiserte pakkene og se at yum-kommandoen vil deaktivere installasjon eller oppdatering av dem.

# 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. Deaktiver pakke midlertidig for installasjon eller oppdatering

2. Ovenfor var en permanent løsning for å ekskludere en pakke, siden den pakken ikke blir oppdatert med mindre filen redigeres. Her er en midlertidig løsning for dette også. Akkurat når du går for en oppdatering, bruk -x-bryteren i yum-kommandoen for å ekskludere pakker du ikke vil oppdatere, som:

yum -x python-3 update

Kommandoen ovenfor vil oppdatere alle pakkene hvis oppdateringer er tilgjengelige, unntatt python-3 på systemet ditt.

Her, for å ekskludere flere pakker, bruk -x flere ganger, eller separer pakkenavn med ',' i en enkelt bryter.

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

3. Bruk av bryteren --exclude fungerer på samme måte som -x, trenger bare å erstatte -x med >–ekskluder og send ',' separert liste over pakkenavn til den.

yum --exclude httpd,php

3. Deaktiver Pakkeoppdateringer ved å bruke Repository

4. For enhver pakke som er installert fra en ekstern kilde ved å legge til et depot, er det en annen måte å stoppe oppgraderingen på i fremtiden. Dette kan gjøres ved å redigere .repo-filen som er opprettet i /etc/yum/repos.d/ eller /etc/yum.repos.d<-katalogen.

Legg til ekskluderingsalternativet med pakkenavnet i repoen. Som: For å ekskludere en hvilken som helst pakke si vin fra epel repo, legg til følgende linje i epel.repo-filen:

[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

Prøv nå å oppdatere vin-pakken, du vil få feilmelding som vist nedenfor:

# 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. Deaktiver pakkeoppdatering ved hjelp av versjonslåsalternativ

5. En annen måte i yum å maskere versjonen av en pakke og dermed gjøre den utilgjengelig for oppgradering, er å bruke versjonslås-alternativet til yum, men for å gjøre dette, må du må yum-plugin-versionlock-pakken installert på systemet.

yum -y install yum-versionlock

For eksempel, for å låse versjonen av pakken si httpd til 2.4.6 bare, bare skriv følgende kommando som root.

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

For å se låste pakker, bruk følgende kommando for å liste pakkene som har blitt versjonslåst.

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

Konklusjon

Dette er noen tips som vil hjelpe deg med å deaktivere/låse pakkeoppdateringer ved å bruke yum-pakkebehandling. Hvis du har andre triks for å gjøre de samme tingene, kan du kommentere dem med oss.