GNU/Linux >> Znalost Linux >  >> Linux

Jak zakázat/uzamknout nebo zakázat aktualizace balíčků pomocí nástroje Apt

APT znamená Advanced Packaging Tool je další správce balíčků, který se nachází v systémech založených na Linuxu. Původně navrženo jako front-end pro dpkg pracovat s .deb balíčků, apt uspěl prokázat svou viditelnost na Mac OS, Open Solaris atd.

Chcete se naučit a ovládat APT a DPKG příkazy ke správě správy balíčků Debianu, pak použijte naše podrobné články, které pokrývají více než 30+ příklady na obou nástrojích.

25 Užitečné příkazy APT pro správu balíčků Debian/Ubuntu15 Užitečné příkazy Dpkg pro správu balíčků v Debian/Ubuntu

V tomto článku uvidíme různé techniky, jak zakázat/uzamknout balíček z instalace, upgradu a odstranění v Debian Linuxu a jeho derivátech, jako je Ubuntu a Linux Mint.

1. Zakázat/uzamknout balíček pomocí „apt-mark“ s možností hold/unhold

Příkaz apt-mark označí nebo zruší označení softwarového balíčku jako automaticky nainstalovaného a používá se s možností podržet nebo odemknout .

  1. zadržet – tato možnost se používá k označení balíčku jako pozdrženého, ​​což zablokuje instalaci, aktualizaci nebo odstranění balíčku.
  2. uvolnit – tato možnost se používá k odstranění dříve nastaveného pozastavení balíčku a umožňuje instalaci, aktualizaci a odstranění balíčku.

Například pro vytvoření balíčku řekněte apache2 nedostupné pro instalaci, upgrade nebo odinstalaci, můžete použít následující příkaz na terminálu s právy root:

# apt-mark hold apache2

Chcete-li tento balíček zpřístupnit pro aktualizaci, stačí nahradit „hold ‘ s ‘odemknout ‘.

# apt-mark unhold apache2

Blokování aktualizací balíčků pomocí souboru předvoleb APT

Dalším způsobem, jak zablokovat aktualizace konkrétního balíčku, je přidat jeho položku do /etc/apt/preferences nebo /etc/apt/preferences.d/official-package-repositories.pref soubor. Tento soubor nese odpovědnost za aktualizaci nebo blokování určitých aktualizací balíčku podle priority určené uživatelem.

Chcete-li balíček zablokovat, stačí zadat jeho název, další funkce a jakou prioritu jej chcete převzít. Zde priorita < 1 zablokuje balíček.

Chcete-li zablokovat jakýkoli balíček, zadejte jeho podrobnosti do souboru /etc/apt/preferences takhle:

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

Chcete-li například zablokovat aktualizace pro balíček apache2, přidejte záznam, jak je znázorněno:

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

Pro další identifikaci balíčku, na který aplikujeme prioritu Pin, můžeme použít další možnosti s klíčovým slovem release. Tato klíčová slova jsou:

  1. a -> Archiv
  2. c -> Komponenta
  3. o -> Původ
  4. l -> Štítek
  5. n -> Architektura

jako:

Pin: release o=Debian,a=Experimental

Znamenalo by to stáhnout uvedený balíček z experimentálního archivu balíčků Debianu.

Zablokujte aktualizaci balíčku pomocí automatického odstranění souboru APT

Dalším způsobem, jak zakázat balíček z instalace, je aktualizovat jeho záznam v jednom ze souborů obsažených v /etc/apt/apt.conf.d/ adresář, který je 01autoremove .

Ukázkový soubor je uveden níže:

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

Chcete-li nyní jakýkoli balíček přidat na černou listinu, stačí zadat jeho název do Never-MarkAuto-Sections . Stačí zadat název balíčku na konci v Never-MarkAuto-Section a Uložit a zavřít soubor. To by zablokovalo apt pro vyhledávání dalších aktualizací tohoto balíčku.

Chcete-li například zablokovat balíček před aktualizací, přidejte záznam podle obrázku:

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

Vlastní výběr balíčku pro aktualizaci

Další alternativou je vybrat si, co chcete aktualizovat. apt Tento nástroj vám dává svobodu vybrat si, co chcete aktualizovat, ale k tomu byste měli mít znalosti o tom, které všechny balíčky jsou k dispozici pro aktualizaci.

Pro takovou věc se může ukázat jako užitečná následující sada příkazů:

a. Chcete-li zobrazit seznam balíčků, jejichž aktualizace čekají na vyřízení.

# apt-get -u -V upgrade

b. Chcete-li nainstalovat pouze vybrané balíčky.

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

Závěr

V tomto článku jsme vysvětlili několik způsobů, jak zakázat/blokovat nebo zakázat aktualizace balíčků pomocí APT. Pokud znáte nějaký jiný preferovaný způsob, dejte nám vědět prostřednictvím komentářů nebo pokud jste hledali příkaz yum pro zakázání/uzamčení aktualizace balíčku, přečtěte si tento článek níže.

Zakázat/uzamknout aktualizace balíčků pomocí Yum v CentOS/RHEL
Linux
  1. 4 způsoby, jak zakázat/uzamknout určité aktualizace balíčků pomocí příkazu Yum

  2. Jak mohu zakázat automatické aktualizace KernelCare?

  3. Jak porovnat tři soubory v Linuxu pomocí nástroje diff3

  1. Jak sestavit balíčky ze zdroje pomocí CheckInstall

  2. Jak nainstalovat soubor Deb pomocí Dpkg -i nebo Apt?

  3. Jak zabít proces držení zámku Apt?

  1. Jak zakázat odpovědi Ping v Linuxu pomocí icmp_echo_ignore_all

  2. UNIX / Linux :Jak zamknout nebo zakázat uživatelský účet

  3. Jak nainstalovat balíčky pomocí dnf v CentOS/RHEL 8