Apt ടൂൾ ഉപയോഗിച്ച് പാക്കേജ് അപ്uഡേറ്റുകൾ എങ്ങനെ പ്രവർത്തനരഹിതമാക്കാം/ലോക്ക് ചെയ്യാം അല്ലെങ്കിൽ ബ്ലാക്ക്uലിസ്റ്റ് ചെയ്യാം


ലിനക്സ് അധിഷ്ഠിത സിസ്റ്റങ്ങളിൽ കാണപ്പെടുന്ന മറ്റൊരു പാക്കേജ് മാനേജരാണ് അഡ്വാൻസ്ഡ് പാക്കേജിംഗ് ടൂൾ എന്നാണ് APT അർത്ഥമാക്കുന്നത്. .deb പാക്കേജുകൾക്കൊപ്പം പ്രവർത്തിക്കാൻ dpkg-യുടെ ഫ്രണ്ട്-എൻഡ് ആയി ആദ്യം രൂപകൽപ്പന ചെയ്ത, Mac OS, Open Solaris മുതലായവയിൽ തന്റെ ദൃശ്യപരത കാണിക്കുന്നതിൽ apt വിജയിച്ചു.

ഡെബിയൻ പാക്കേജ് മാനേജ്uമെന്റ് മാനേജ് ചെയ്യുന്നതിനായി APT, DPKG കമാൻഡുകളെക്കുറിച്ച് പഠിക്കാനും മാസ്റ്റർ ചെയ്യാനും ആഗ്രഹിക്കുന്നു, തുടർന്ന് രണ്ട് ടൂളുകളിലും 30-ലധികം ഉദാഹരണങ്ങൾ ഉൾക്കൊള്ളുന്ന ഞങ്ങളുടെ ആഴത്തിലുള്ള ലേഖനങ്ങൾ ഉപയോഗിക്കുക.

ഡെബിയൻ ലിനക്സിലും അതിന്റെ ഡെറിവേറ്റീവുകളായ ഉബുണ്ടു, ലിനക്സ് മിന്റ് എന്നിവയിലും പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും അപ്uഗ്രേഡ് ചെയ്യുന്നതിനും നീക്കം ചെയ്യുന്നതിനും ഉള്ള വിവിധ സാങ്കേതിക വിദ്യകൾ ഈ ലേഖനത്തിൽ നമ്മൾ കാണും.

1. ഹോൾഡ്/അൺഹോൾഡ് ഓപ്uഷൻ ഉപയോഗിച്ച് 'apt-mark' ഉപയോഗിച്ച് പാക്കേജ് പ്രവർത്തനരഹിതമാക്കുക/ലോക്ക് ചെയ്യുക

apt-mark എന്ന കമാൻഡ് ഒരു സോഫ്uറ്റ്uവെയർ പാക്കേജ് സ്വയമേവ ഇൻസ്റ്റാളുചെയ്uതതായി അടയാളപ്പെടുത്തുകയോ അൺമാർക്ക് ചെയ്യുകയോ ചെയ്യും, അത് ഹോൾഡ് അല്ലെങ്കിൽ അൺഹോൾഡ് ഓപ്uഷനോടുകൂടിയാണ് ഉപയോഗിക്കുന്നത്.

  1. പിടിക്കുക - ഒരു പാക്കേജ് ഹോൾഡ് ബാക്ക് ആയി അടയാളപ്പെടുത്താൻ ഈ ഓപ്uഷൻ ഉപയോഗിക്കുന്നു, ഇത് പാക്കേജിനെ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിൽ നിന്നും അപ്uഗ്രേഡ് ചെയ്യുന്നതിൽ നിന്നും നീക്കം ചെയ്യുന്നതിൽ നിന്നും തടയും.
  2. അൺഹോൾഡ് - ഒരു പാക്കേജിൽ മുമ്പ് സജ്ജീകരിച്ച ഹോൾഡ് നീക്കം ചെയ്യുന്നതിനും പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും അപ്uഗ്രേഡ് ചെയ്യുന്നതിനും നീക്കം ചെയ്യുന്നതിനും അനുവദിക്കുന്നതിനും ഈ ഓപ്uഷൻ ഉപയോഗിക്കുന്നു.

ഉദാഹരണത്തിന്, ഇൻസ്റ്റാളുചെയ്യുന്നതിനോ അപ്uഗ്രേഡുചെയ്യുന്നതിനോ അൺഇൻസ്റ്റാൾ ചെയ്യുന്നതിനോ apache2 ലഭ്യമല്ലെന്ന് ഒരു പാക്കേജ് നിർമ്മിക്കുന്നതിന്, നിങ്ങൾക്ക് റൂട്ട് പ്രത്യേകാവകാശങ്ങളോടെ ടെർമിനലിൽ ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കാം:

# apt-mark hold apache2

ഈ പാക്കേജ് അപ്uഡേറ്റിനായി ലഭ്യമാക്കുന്നതിന്, 'ഹോൾഡ്' എന്നതിന് പകരം 'അൺഹോൾഡ്' എന്ന് മാറ്റിസ്ഥാപിക്കുക.

# apt-mark unhold apache2

APT മുൻഗണനാ ഫയൽ ഉപയോഗിച്ച് പാക്കേജ് അപ്uഡേറ്റുകൾ തടയുന്നു

ഒരു നിർദ്ദിഷ്uട പാക്കേജിന്റെ അപ്uഡേറ്റുകൾ തടയുന്നതിനുള്ള മറ്റൊരു മാർഗ്ഗം അതിന്റെ എൻട്രി /etc/apt/preferences അല്ലെങ്കിൽ /etc/apt/preferences.d/official-package-repositories.pref ഫയൽ. ഉപയോക്താവ് വ്യക്തമാക്കിയ മുൻuഗണന അനുസരിച്ച് ചില പാക്കേജ് അപ്uഡേറ്റുകൾ അപ്uഡേറ്റ് ചെയ്യുന്നതിനോ തടയുന്നതിനോ ഈ ഫയലിന് ഉത്തരവാദിത്തമുണ്ട്.

പാക്കേജ് തടയുന്നതിന്, നിങ്ങൾ അതിന്റെ പേര്, അധിക ഫീച്ചർ, ഏത് മുൻഗണനയിലേക്കാണ് അത് എടുക്കാൻ ആഗ്രഹിക്കുന്നത് എന്നിവ നൽകേണ്ടത്. ഇവിടെ, മുൻഗണന 1 പാക്കേജിനെ തടയും.

ഏതെങ്കിലും പാക്കേജ് തടയുന്നതിന്, /etc/apt/preferences എന്ന ഫയലിൽ അതിന്റെ വിശദാംശങ്ങൾ ഇതുപോലെ നൽകുക:

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

ഉദാഹരണത്തിന്, apache2 പാക്കേജിനായുള്ള അപ്uഡേറ്റുകൾ തടയുന്നതിന് കാണിച്ചിരിക്കുന്നതുപോലെ എൻട്രി ചേർക്കുക:

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

ഞങ്ങൾ പിൻ മുൻഗണന പ്രയോഗിക്കുന്ന പാക്കേജ് കൂടുതൽ തിരിച്ചറിയുന്നതിന് റിലീസ് കീവേഡ് ഉപയോഗിച്ച് മറ്റ് ഓപ്ഷനുകൾ ഉപയോഗിക്കാം. ആ കീവേഡുകൾ ഇവയാണ്:

  1. a -> ആർക്കൈവ്
  2. c -> ഘടകം
  3. o -> ഉത്ഭവം
  4. l -> ലേബൽ
  5. n -> വാസ്തുവിദ്യ

പോലെ:

Pin: release o=Debian,a=Experimental

ഡെബിയൻ പാക്കേജ് പരീക്ഷണാത്മക ആർക്കൈവിൽ നിന്ന് പ്രസ്താവിച്ച പാക്കേജ് പിൻവലിക്കുക എന്നാണ് അർത്ഥമാക്കുന്നത്.

APT ഓട്ടോറിമൂവ് ഫയൽ ഉപയോഗിച്ച് ഒരു പാക്കേജ് അപ്uഡേറ്റ് ബ്ലാക്ക്uലിസ്റ്റ് ചെയ്യുക

ഇൻസ്റ്റാളേഷനിൽ നിന്ന് ഒരു പാക്കേജിനെ ബ്ലാക്ക്uലിസ്റ്റ് ചെയ്യുന്നതിനുള്ള മറ്റൊരു മാർഗ്ഗം, /etc/apt/apt.conf.d/ ഡയറക്uടറിയിലുള്ള 01autoremove എന്ന ഫയലിൽ അതിന്റെ എൻട്രി അപ്uഡേറ്റ് ചെയ്യുക എന്നതാണ്.

സാമ്പിൾ ഫയൽ താഴെ കാണിച്ചിരിക്കുന്നു:

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

ഇപ്പോൾ, ഏതെങ്കിലും പാക്കേജ് ബ്ലാക്ക്uലിസ്റ്റ് ചെയ്യുന്നതിന്, അതിന്റെ പേര് Never-MarkAuto-Sections എന്നതിൽ നൽകിയാൽ മതി. Never-MarkAuto-Section എന്നതിൽ അവസാനം പാക്കേജിന്റെ പേര് നൽകി ഫയൽ സംരക്ഷിച്ച് അടയ്ക്കുക. ഇത് ആ പാക്കേജിന്റെ കൂടുതൽ അപ്uഡേറ്റുകൾക്കായി തിരയുന്നത് തടയും.

ഉദാഹരണത്തിന്, അപ്uഡേറ്റ് ചെയ്യുന്നതിൽ നിന്ന് ഒരു പാക്കേജ് ബ്ലാക്ക്uലിസ്റ്റ് ചെയ്യുന്നതിന് കാണിച്ചിരിക്കുന്നതുപോലെ എൻട്രി ചേർക്കുക:

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

അപ്uഡേറ്റിനായി ഇഷ്uടാനുസൃത പാക്കേജ് തിരഞ്ഞെടുക്കൽ

ഇതിനുള്ള മറ്റൊരു ബദലാണ് നിങ്ങൾ അപ്uഡേറ്റ് ചെയ്യേണ്ടത് തിരഞ്ഞെടുക്കുക എന്നതാണ്. നിങ്ങൾക്ക് അപ്ഡേറ്റ് ചെയ്യേണ്ടത് തിരഞ്ഞെടുക്കാനുള്ള സ്വാതന്ത്ര്യം apt ടൂൾ നൽകുന്നു, എന്നാൽ ഇതിനായി അപ്-ഗ്രേഡേഷനായി എല്ലാ പാക്കേജുകളും എന്തെല്ലാം ലഭ്യമാണ് എന്നതിനെക്കുറിച്ച് നിങ്ങൾക്ക് അറിവുണ്ടായിരിക്കണം.

അത്തരമൊരു കാര്യത്തിന്, ഇനിപ്പറയുന്ന കമാൻഡുകൾ സഹായകരമാണെന്ന് തെളിയിക്കാനാകും:

എ. ഏതൊക്കെ പാക്കേജുകളുടെ അപ്ഡേറ്റുകൾ തീർച്ചപ്പെടുത്തിയിട്ടില്ലെന്ന് ലിസ്റ്റ് ചെയ്യാൻ.

# apt-get -u -V upgrade

ബി. തിരഞ്ഞെടുത്ത പാക്കേജുകൾ മാത്രം ഇൻസ്റ്റാൾ ചെയ്യാൻ.

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

ഉപസംഹാരം

ഈ ലേഖനത്തിൽ, APT വഴി ഉപയോഗിച്ച് പാക്കേജ് അപ്uഡേറ്റുകൾ അപ്രാപ്uതമാക്കുന്നതിനോ തടയുന്നതിനോ അല്ലെങ്കിൽ ബ്ലാക്ക്uലിസ്റ്റ് ചെയ്യുന്നതിനോ ഉള്ള ചില വഴികൾ ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്. നിങ്ങൾക്ക് ഇഷ്ടപ്പെട്ട മറ്റേതെങ്കിലും മാർഗ്ഗം അറിയാമെങ്കിൽ, അഭിപ്രായങ്ങൾ വഴി ഞങ്ങളെ അറിയിക്കുക അല്ലെങ്കിൽ പാക്കേജ് അപ്uഡേറ്റ് അപ്രാപ്uതമാക്കാൻ/ലോക്ക് ചെയ്യാൻ നിങ്ങൾ yum കമാൻഡിനായി തിരയുകയാണെങ്കിൽ, ചുവടെയുള്ള ഈ ലേഖനം വായിക്കുക.