Weboldal keresés

A csomagfrissítések letiltása/zárolása vagy tiltólistára tétele az Apt Tool segítségével


Az APT azt jelenti, hogy az Advanced Packaging Tool egy másik csomagkezelő, amely Linux alapú rendszereken található. Eredetileg a dpkg kezelőfelületeként tervezték a .deb csomagokkal való együttműködéshez, és az apt-nak sikerült megmutatnia a láthatóságát Mac OS, Open Solaris stb.

Szeretné megtanulni és elsajátítani az APT és DPKG parancsokat a Debian csomagkezelés kezeléséhez, majd használja részletes cikkeinket, amelyek több mint 30+ra vonatkoznak. > példák mindkét eszközre.

Ebben a cikkben különféle technikákat fogunk látni a csomagok telepítésének, frissítésének és eltávolításának letiltására/zárolására a Debian Linuxban és annak származékaiban, mint például az Ubuntu és a Linux Mint.

1. Csomag letiltása/zárolása az „apt-mark” használatával a hold/unhold opcióval

Az apt-mark parancs automatikusan telepítettként jelöli meg a szoftvercsomagot, vagy törli a jelölést, és a tartsa vagy a unhold opcióval együtt használatos.

  1. tarts – ez az opció egy csomag visszatartottként való megjelölésére szolgál, amely megakadályozza a csomag telepítését, frissítését vagy eltávolítását.
  2. Unhold – ez az opció a csomagon korábban beállított visszatartás eltávolítására szolgál, és lehetővé teszi a csomag telepítését, frissítését és eltávolítását.

Például, ha egy csomagban az apache2 feliratot nem teszi elérhetővé telepítéshez, frissítéshez vagy eltávolításhoz, a következő parancsot használhatja a terminálon root jogosultságokkal:

apt-mark hold apache2

Ahhoz, hogy ez a csomag elérhető legyen frissítésre, cserélje ki a „tarts” kifejezést a „unhold” kifejezésre.

apt-mark unhold apache2

Csomagfrissítések blokkolása az APT beállítások fájl használatával

Egy adott csomag frissítéseinek blokkolásának másik módja, ha hozzáadja a bejegyzést az /etc/apt/preferences vagy az /etc/apt/preferences.d/official-package-repositories.pref fájl. Ez a fájl felelős bizonyos csomagfrissítések frissítéséért vagy letiltásáért a felhasználó által megadott prioritás szerint.

A csomag letiltásához csak meg kell adnia a nevét, a kiegészítő funkciót, és azt, hogy milyen prioritásnak kívánja átvinni. Itt a < 1 prioritás blokkolná a csomagot.

Bármely csomag blokkolásához írja be a részleteket az /etc/apt/preferences fájlba, így:

Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>

Például az apache2 csomag frissítéseinek blokkolásához adja hozzá az alábbi bejegyzést:

Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1

A kiadási kulcsszóval más opciókat is használhatunk annak a csomagnak a további azonosítására, amelyre a Pin Priority-t alkalmazzuk. Ezek a kulcsszavak:

  1. a -> Archívum
  2. c -> Összetevő
  3. o -> Eredet
  4. l -> Címke
  5. n -> Építészet

mint :

Pin: release o=Debian,a=Experimental

Azt jelentené, hogy a megadott csomagot a Debian csomag kísérleti archívumából húzzuk ki.

A csomagfrissítések tiltólistára kerülnek az APT Autoremove File használatával

Egy másik módja annak, hogy egy csomagot tiltólistára helyezzen a telepítésből, ha frissíti a bejegyzését a /etc/apt/apt.conf.d/ könyvtárban található egyik fájlban, amely a 01autoremove.

Az alábbi mintafájl látható:

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";
  };
};

Most, ha bármilyen csomagot feketelistára szeretne tenni, csak meg kell adnia a nevét a Never-MarkAuto-Sections mezőben. Csak írja be a csomag nevét a Never-MarkAuto-Section végén, majd Mentse és zárja be a fájlt. Ez blokkolná az apt-ot a csomag további frissítéseinek keresésében.

Ha például egy csomagot tiltólistára szeretne tenni a frissítéstől, adja hozzá a bejegyzést az alábbi módon:

Never-MarkAuto-Sections
  {
        "metapackages";
        "restricted/metapackages";
        "universe/metapackages";
        "multiverse/metapackages";
        "oldlibs";
        "restricted/oldlibs";
        "universe/oldlibs";
        "multiverse/oldlibs";
        "apache2*";
  };
};

Egyéni csomagválasztás a frissítéshez

Ennek másik alternatívája az, hogy kiválasztja, mit szeretne frissíteni. Az apt eszköz szabadon választhatja ki, hogy mit szeretne frissíteni, de ehhez tisztában kell lennie azzal, hogy mely csomagok állnak rendelkezésre a frissítéshez.

Ilyen esetekben a következő parancsok hasznosak lehetnek:

a. A függőben lévő csomagok listája.

apt-get -u -V upgrade

b. Csak szelektív csomagok telepítése.

apt-get --only-upgrade install <package-name>

Következtetés

Ebben a cikkben néhány módszert ismertetünk a csomagfrissítések letiltására/letiltására vagy tiltólistára az APT módszerrel. Ha ismer más előnyben részesített módot, tudassa velünk megjegyzésekben, vagy ha yum parancsot keresett a csomagfrissítés letiltásához/zárolásához, akkor olvassa el ezt a cikket.