Hvordan deaktivere/låse eller svarteliste pakkeoppdateringer ved hjelp av Apt Tool
APT betyr Advanced Packaging Tool er en annen pakkebehandler som finnes på Linux-baserte systemer. Opprinnelig designet som en front-end for dpkg for å fungere med .deb-pakker, har apt lyktes med å vise sin synlighet på Mac OS, Open Solaris etc.
Ønsker du å lære og mestre APT- og DPKG-kommandoer for å administrere Debian-pakkeadministrasjon, så bruk våre dybdeartikler som vil dekke mer enn 30+ > eksempler på begge verktøyene.
I denne artikkelen vil vi se ulike teknikker for å deaktivere/låse pakken fra å installere, oppgradere og fjerne i Debian Linux og dets derivater som Ubuntu og Linux Mint.
1. Deaktiver/lås pakke ved å bruke ‘apt-mark’ med hold/unhold-alternativet
Kommandoen apt-mark vil merke eller fjerne merkingen av en programvarepakke som automatisk installert, og den brukes med alternativet hold eller unhold.
- hold – dette alternativet brukes til å merke en pakke som holdt tilbake, noe som vil blokkere pakken fra å bli installert, oppgradert eller fjernet.
- unhold – dette alternativet brukes til å fjerne et tidligere angitt hold på en pakke og tillate å installere, oppgradere og fjerne pakke.
For eksempel, for å gjøre en pakke som sier apache2
utilgjengelig for installasjon, oppgradering eller avinstallering, kan du bruke følgende kommando på terminalen med root-privilegier:
apt-mark hold apache2
For å gjøre denne pakken tilgjengelig for oppdatering, erstatt «hold» med «unhold».
apt-mark unhold apache2
Blokkering av pakkeoppdateringer ved hjelp av APT Preference File
En annen måte å blokkere oppdateringer av en spesifikk pakke på er å legge til oppføringen i /etc/apt/preferences
eller /etc/apt/preferences.d/official-package-repositories.pref
fil. Denne filen har ansvaret for å oppdatere eller blokkere visse pakkeoppdateringer i henhold til prioritet spesifisert av brukeren.
For å blokkere pakken trenger du bare å skrive inn navnet, tilleggsfunksjonen og hvilken prioritet du vil ta den til. Her vil prioritet < 1
blokkere pakken.
For å blokkere en pakke, skriv inn detaljene i filen /etc/apt/preferences
slik:
Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>
For å blokkere oppdateringer for pakken apache2 for eksempel, legg til oppføringen som vist:
Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1
Vi kan bruke andre alternativer med utgivelsesnøkkelord for ytterligere å identifisere pakken som vi bruker Pin Priority på. Disse nøkkelordene er:
- a -> Arkiv
- c -> Komponent
- o -> Opprinnelse
- l -> Etikett
- n -> Arkitektur
som :
Pin: release o=Debian,a=Experimental
Vil bety å hente den angitte pakken fra Debians eksperimentelle pakkearkiv.
Svarteliste en pakkeoppdatering med APT Autoremove File
En annen måte å svarteliste en pakke fra installasjonen er å oppdatere oppføringen i en av filene i katalogen /etc/apt/apt.conf.d/
som er 01autoremove.
Eksempelfil vises nedenfor:
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
};
VersionedKernelPackages
{
# linux kernels
"linux-image";
"linux-headers";
"linux-image-extra";
"linux-signed-image";
# kfreebsd kernels
"kfreebsd-image";
"kfreebsd-headers";
# hurd kernels
"gnumach-image";
# (out-of-tree) modules
".*-modules";
".*-kernel";
"linux-backports-modules-.*";
# tools
"linux-tools";
};
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
};
};
Nå, for å svarteliste enhver pakke, trenger du bare å skrive inn navnet i Never-MarkAuto-Sections
. Bare skriv inn navnet på pakken på slutten i Never-MarkAuto-Section
og lagre og lukk filen. Dette vil blokkere apt for å søke etter ytterligere oppdateringer av den pakken.
For eksempel, for å svarteliste en pakke fra å bli oppdatert, legg til oppføringen som vist:
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
"apache2*";
};
};
Tilpasset pakkevalg for oppdatering
Et annet alternativ for dette er å velge hva du vil oppdatere. apt-verktøyet gir deg frihet til å velge hva du vil oppdatere, men for dette bør du ha kunnskap om hva alle pakker er tilgjengelige for oppgradering.
For noe slikt kan følgende sett med kommandoer vise seg å være nyttige:
a. For å liste hvilke pakker som har oppdateringer som venter.
apt-get -u -V upgrade
b. For å installere kun selektive pakker.
apt-get --only-upgrade install <package-name>
Konklusjon
I denne artikkelen har vi forklart noen måter å deaktivere/blokkere eller svarteliste pakkeoppdateringer ved å bruke APT-måten. Hvis du kjenner til en annen foretrukket måte, gi oss beskjed via kommentarer eller hvis du leter etter yum-kommando for å deaktivere/låse pakkeoppdatering, så les denne artikkelen nedenfor.