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: yum på RHEL 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 yum på Fedora-systemer som er en annen på listen vår. Hvis de utforskes på riktig måte, kan disse pakkeadministratorene brukes til følgende funksjoner:
- Installerer ny programvare fra depotet.
- Løs avhengigheter til programvaren ved å installere disse avhengighetene før du installerer programvaren.
- Vedlikeholde database over avhengigheter for hver programvare.
- Nedgrader versjon av eksisterende programvare.
- Oppgradering av kjerneversjonen.
- 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å:
- Mestre Yum Command med disse 20 praktiske eksemplene
- 27 DNF-kommandoer for å administrere pakker i Fedora 22+ versjoner
- 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.