Giunsa Pag-disable/I-lock o Blacklist ang Mga Update sa Package gamit ang Apt Tool


Ang APT nagpasabut nga Advanced Packaging Tool usa pa ka manager sa package nga nakit-an sa mga sistema nga nakabase sa Linux. Sa sinugdan gidisenyo isip front-end alang sa dpkg nga magtrabaho uban sa .deb nga mga pakete, ang apt milampos sa pagpakita sa iyang visibility sa Mac OS, Open Solaris etc.

Gusto nga makat-on ug master bahin sa APT ug DPKG nga mga mando aron madumala ang pagdumala sa pakete sa Debian, unya gamita ang among lawom nga mga artikulo nga magsakup sa labaw pa sa 30+ nga mga pananglitan sa parehas nga mga himan.

Niini nga artikulo atong makita ang nagkalain-laing mga teknik sa pag-disable/lock sa package gikan sa pag-install, pag-upgrade ug pagtangtang sa Debian Linux ug sa mga derivatives niini sama sa Ubuntu ug Linux Mint.

1. I-disable/Lock Package Gamit ang 'apt-mark' nga adunay hold/unhold Option

Ang command apt-mark magmarka o mag-unmark sa usa ka software package nga awtomatiko nga gi-install ug kini gigamit nga adunay kapilian nga pagpugong o dili pagpugong.

  1. hold – kini nga opsyon gigamit sa pagmarka sa usa ka package nga gipugngan, nga makababag sa package gikan sa pag-instalar, pag-upgrade o pagtangtang.
  2. unhold – kini nga opsyon gigamit sa pagtangtang sa usa ka gitakda na nga paghawid sa usa ka package ug pagtugot sa pag-instalar, pag-upgrade ug pagtangtang sa package.

Pananglitan, alang sa paghimo sa usa ka pakete isulti apache2 dili magamit alang sa pag-install, pag-upgrade o pag-uninstall, mahimo nimong gamiton ang mosunod nga mando sa terminal nga adunay mga pribilehiyo sa gamut:

# apt-mark hold apache2

Aron mahimo kini nga pakete nga magamit alang sa pag-update, ilisan lang ang 'hold' sa 'unhold'.

# apt-mark unhold apache2

Pag-block sa Mga Update sa Package Gamit ang APT Preferences File

Ang laing paagi sa pagbabag sa mga update sa usa ka piho nga pakete mao ang pagdugang sa pagsulod niini sa /etc/apt/preferences o /etc/apt/preferences.d/official-package-repositories.pref file. Kini nga file adunay responsibilidad sa pag-update o pagbabag sa pipila nga mga update sa package sumala sa prayoridad nga gitakda sa tiggamit.

Aron ma-block ang package, kinahanglan nimo nga isulod ang ngalan niini, dugang nga bahin, ug kung unsang prayoridad ang gusto nimo nga dad-on kini. Dinhi, ang prayoridad < 1 mobabag sa package.

Para sa pagbabag sa bisan unsang package, isulod lang ang mga detalye niini sa file /etc/apt/preferences sama niini:

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

Pananglitan aron babagan ang mga update alang sa package apache2 idugang ang entry sama sa gipakita:

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

Mahimo namong gamiton ang ubang mga kapilian sa pagpagawas sa keyword alang sa dugang nga pag-ila sa pakete diin among gipadapat ang Pin Priority. Kadtong mga keyword mao ang:

  1. a -> Arkibo
  2. c -> Component
  3. o -> Sinugdanan
  4. l -> Label
  5. n -> Arkitektura

sama sa:

Pin: release o=Debian,a=Experimental

Buot ipasabot nga ibira ang gipahayag nga pakete gikan sa Debian package experimental archive.

I-blacklist ang usa ka Update sa Package gamit ang APT Autoremove File

Ang laing paagi sa pag-blacklist sa usa ka package gikan sa pag-instalar mao ang pag-update sa entry niini sa usa sa mga file nga anaa sa /etc/apt/apt.conf.d/ directory nga mao ang 01autoremove.

Sample file gipakita sa ubos:

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

Karon, alang sa pag-blacklist sa bisan unsang pakete, kinahanglan lang nga isulod ang ngalan niini sa Never-MarkAuto-Sections. Isulod lang ang ngalan sa package sa katapusan sa Never-MarkAuto-Section ug Save and Close the file. Kini makababag sa apt alang sa pagpangita alang sa dugang nga mga update sa maong package.

Pananglitan, sa pag-blacklist sa usa ka pakete gikan sa pag-update idugang ang entry sama sa gipakita:

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

Pasadya nga Pagpili sa Pakete para sa Pag-update

Ang laing alternatibo niini mao ang pagpili sa gusto nimong i-update. Ang haom nga himan naghatag kanimo ug kagawasan sa pagpili kung unsa ang gusto nimo nga i-update, apan alang niini kinahanglan nimo nga adunay kahibalo kung unsa ang tanan nga mga pakete nga magamit alang sa pag-upgrade.

Alang sa ingon nga butang, ang pagsunod sa hugpong sa mga mando mahimong makatabang:

a. Aron Ilista kung unsa nga mga pakete ang adunay mga update nga naghulat.

# apt-get -u -V upgrade

b. Sa pag-instalar lamang sa mga pinili nga pakete.

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

Konklusyon

Sa kini nga artikulo, gipatin-aw namon ang pipila ka mga paagi aron ma-disable/block o blacklist ang mga update sa package gamit ang APT nga paagi. Kung nahibal-an nimo ang bisan unsang ubang gusto nga paagi, ipahibalo kanamo pinaagi sa mga komento o kung nangita ka yum nga mando aron ma-disable/i-lock ang pag-update sa package, unya basaha kini sa ubos nga artikulo.