Com desactivar/bloquejar o actualitzacions de paquets a la llista negra mitjançant l'eina Apt


APT significa Advanced Packaging Tool és un altre gestor de paquets que es troba als sistemes basats en Linux. Dissenyat inicialment com a interfície per a dpkg per treballar amb paquets .deb, apt ha aconseguit mostrar la seva visibilitat a Mac OS, Open Solaris, etc.

Voleu aprendre i dominar les ordres APT i DPKG per gestionar la gestió de paquets de Debian i, a continuació, utilitzeu els nostres articles en profunditat que inclouran més de 30 exemples sobre ambdues eines.

En aquest article veurem diverses tècniques per desactivar/bloquejar el paquet d'instal·lar, actualitzar i eliminar a Debian Linux i els seus derivats com Ubuntu i Linux Mint.

1. Desactivar/Bloquejar el paquet utilitzant 'apt-mark' amb l'opció de retenció/desactivació

L'ordre apt-mark marcarà o desmarcarà un paquet de programari com a instal·lat automàticament i s'utilitza amb l'opció hold o unhold.

  1. Retenir: aquesta opció s'utilitza per marcar un paquet com a retingut, cosa que bloquejarà la instal·lació, l'actualització o l'eliminació del paquet.
  2. unhold: aquesta opció s'utilitza per eliminar una retenció establerta prèviament en un paquet i permet instal·lar, actualitzar i eliminar el paquet.

Per exemple, per fer que un paquet digui que apache2 no estigui disponible per a la instal·lació, l'actualització o la desinstal·lació, podeu utilitzar l'ordre següent al terminal amb privilegis d'arrel:

# apt-mark hold apache2

Per fer que aquest paquet estigui disponible per a l'actualització, només cal que substituïu hold per unhold.

# apt-mark unhold apache2

Bloqueig d'actualitzacions de paquets mitjançant el fitxer de preferències APT

Una altra manera de bloquejar les actualitzacions d'un paquet específic és afegir la seva entrada a /etc/apt/preferences o /etc/apt/preferences.d/official-package-repositories.pref codi> fitxer. Aquest fitxer té la responsabilitat d'actualitzar o bloquejar determinades actualitzacions de paquets segons la prioritat especificada per l'usuari.

Per bloquejar el paquet, només cal que introduïu el seu nom, la funció addicional i a quina prioritat voleu portar-lo. Aquí, la prioritat < 1 bloquejaria el paquet.

Per bloquejar qualsevol paquet, només cal que introduïu els seus detalls al fitxer /etc/apt/preferences com aquest:

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

Per exemple, per bloquejar les actualitzacions del paquet apache2, afegiu l'entrada tal com es mostra:

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

Podem utilitzar altres opcions amb la paraula clau de llançament per identificar més el paquet al qual estem aplicant la prioritat de pin. Aquestes paraules clau són:

  1. a -> Arxiu
  2. c -> Component
  3. o -> Origen
  4. l -> Etiqueta
  5. n -> Arquitectura

M'agrada:

Pin: release o=Debian,a=Experimental

Voldria dir treure el paquet indicat de l'arxiu experimental del paquet Debian.

Llista negra d'una actualització de paquets mitjançant APT Autoremove File

Una altra manera de posar a la llista negra un paquet des de la instal·lació és actualitzar la seva entrada en un dels fitxers continguts al directori /etc/apt/apt.conf.d/ que és 01autoremove.

A continuació es mostra un fitxer de mostra:

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

Ara, per afegir qualsevol paquet a la llista negra, només cal que introduïu el seu nom a Never-MarkAuto-Sections. Només cal que introduïu el nom del paquet al final a Never-MarkAuto-Section i deseu i tanqueu el fitxer. Això bloquejaria apt per cercar més actualitzacions d'aquest paquet.

Per exemple, per afegir un paquet a la llista negra perquè s'actualitzi, afegiu l'entrada tal com es mostra:

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

Selecció de paquets personalitzats per a l'actualització

Una altra alternativa per a això és triar el que voleu actualitzar. L'eina apt us dóna llibertat per triar què voleu actualitzar, però per això hauríeu de conèixer quins paquets estan disponibles per a l'actualització.

Per a això, el següent conjunt d'ordres pot resultar útil:

a. Per llistar quins paquets tenen actualitzacions pendents.

# apt-get -u -V upgrade

b. Per instal·lar només paquets selectius.

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

Conclusió

En aquest article, hem explicat algunes maneres de desactivar/bloquejar o les actualitzacions de paquets a la llista negra mitjançant la manera APT. Si coneixeu alguna altra manera preferida, feu-nos-ho saber mitjançant comentaris o si cerqueu l'ordre yum per desactivar/bloquejar l'actualització del paquet, llegiu aquest article a continuació.