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.

  1. hold – dette alternativet brukes til å merke en pakke som holdt tilbake, noe som vil blokkere pakken fra å bli installert, oppgradert eller fjernet.
  2. 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:

  1. a -> Arkiv
  2. c -> Komponent
  3. o -> Opprinnelse
  4. l -> Etikett
  5. 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.