നിക്uസ് - ലിനക്uസിനായുള്ള പൂർണ്ണമായും പ്രവർത്തനക്ഷമമായ പാക്കേജ് മാനേജർ


GNU LGPLv2.1 ന്റെ നിബന്ധനകൾക്ക് കീഴിൽ പുറത്തിറക്കിയ, വിശ്വസനീയവും പുനരുൽപ്പാദിപ്പിക്കാവുന്നതുമായ പാക്കേജ് മാനേജ്മെന്റിനായി രൂപകൽപ്പന ചെയ്ത ശക്തവും പൂർണ്ണമായും പ്രവർത്തനക്ഷമവുമായ പാക്കേജ് മാനേജ്മെന്റ് സിസ്റ്റമാണ് നിക്സ്. അധികം അറിയപ്പെടാത്ത Linux വിതരണമായ NixOS-ലെ പ്രാഥമിക പാക്കേജ് മാനേജ്മെന്റ് സിസ്റ്റമാണിത്.

ഒരു ഡെവലപ്പർ ഏത് പ്രോഗ്രാമിംഗ് ഭാഷകളും ടൂളുകളും ഉപയോഗിക്കുന്നു എന്നത് പരിഗണിക്കാതെ തന്നെ, ആറ്റോമിക് അപ്uഗ്രേഡുകളും റോൾബാക്കുകളും, പാക്കേജ് ഇൻസ്റ്റാളേഷന്റെ ഒന്നിലധികം പതിപ്പുകൾ, മൾട്ടി-യൂസർ പാക്കേജ് മാനേജ്uമെന്റ്, ഒരു പാക്കേജിനായി ബിൽഡ് എൻവയോൺമെന്റുകളുടെ ആയാസരഹിതമായ സജ്ജീകരണം എന്നിവ നിക്സ് വാഗ്ദാനം ചെയ്യുന്നു.

Nix-ന് കീഴിൽ, \Nix എക്സ്പ്രഷനുകൾ എന്ന് വിളിക്കുന്ന ഒരു ഫങ്ഷണൽ പാക്കേജ് ഭാഷയിൽ നിന്നാണ് പാക്കേജുകൾ നിർമ്മിച്ചിരിക്കുന്നത്. പാക്കേജ് മാനേജ്മെന്റിനുള്ള ഈ ഫംഗ്ഷണൽ സമീപനം ഒരു പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനോ അപ്ഗ്രേഡ് ചെയ്യുന്നതിനോ മറ്റ് പാക്കേജുകളെ തകർക്കാൻ കഴിയില്ലെന്ന് ഉറപ്പ് നൽകുന്നു.

Nix-ന് മൾട്ടി-ഉപയോക്തൃ പിന്തുണയും ഉണ്ട്, ഇത് സാധാരണ (അല്ലെങ്കിൽ പ്രത്യേകാവകാശമില്ലാത്ത) സിസ്റ്റം ഉപയോക്താക്കൾക്ക് സുരക്ഷിതമായി പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും ഓരോ ഉപയോക്താവിനെയും ഒരു പ്രൊഫൈൽ (ഉപയോക്താവിന്റെ PATH-ൽ ദൃശ്യമാകുന്ന Nix സ്റ്റോറിലെ പാക്കേജുകളുടെ ഒരു ശേഖരം) തിരിച്ചറിയുമെന്നും സൂചിപ്പിക്കുന്നു.

ഒരു ഉപയോക്താവ് ഒരു പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെങ്കിൽ, മറ്റൊരു ഉപയോക്താവ് അതേ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ, പാക്കേജ് രണ്ടാമതും നിർമ്മിക്കുകയോ ഡൗൺലോഡ് ചെയ്യുകയോ ചെയ്യില്ല.

ഇത് നിലവിൽ Linux (i686, x86_64), Mac OS X (x86_64) എന്നിവയെ പിന്തുണയ്ക്കുന്നു. എന്നിരുന്നാലും, ഇത് വളരെ പോർട്ടബിൾ ആണ്, POSIX ത്രെഡുകളെ പിന്തുണയ്ക്കുന്ന, C++11 കമ്പൈലർ ഉള്ള മിക്ക പ്ലാറ്റ്ഫോമുകളിലും നിങ്ങൾക്ക് ഇത് പരീക്ഷിക്കാവുന്നതാണ്.

ഈ ലേഖനത്തിൽ, എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും (മൾട്ടി യൂസർ മോഡിൽ) Linux-ൽ Nix പാക്കേജ് മാനേജർ ഉപയോഗിക്കാമെന്നും ഞങ്ങൾ കാണിക്കും. സാധാരണയായി ഉപയോഗിക്കുന്ന ടൂളുകളുമായി ബന്ധപ്പെട്ട് ചില അടിസ്ഥാന പാക്കേജ് മാനേജ്മെന്റ് ടാസ്ക്കുകൾ ഞങ്ങൾ ചർച്ച ചെയ്യും.

ലിനക്സിൽ നിക്സ് പാക്കേജ് മാനേജർ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

ഞങ്ങൾ നിക്സിന്റെ ഏറ്റവും പുതിയ പതിപ്പ് (എഴുതുന്ന സമയത്ത് v2.1.3) മൾട്ടി യൂസർ മോഡിൽ ഇൻസ്റ്റാൾ ചെയ്യും. ഭാഗ്യവശാൽ, നിങ്ങളുടെ സിസ്റ്റത്തിൽ താഴെ പറയുന്ന curl കമാൻഡ് ഉപയോഗിച്ച് ഒരു സാധാരണ ഉപയോക്താവെന്ന നിലയിൽ നിങ്ങളുടെ ഷെല്ലിൽ നിന്ന് പ്രവർത്തിപ്പിക്കാവുന്ന ഒരു തയ്യാറായ ഇൻസ്റ്റലേഷൻ സ്ക്രിപ്റ്റ് ഉണ്ട്.

$ sh <(curl https://nixos.org/nix/install) --daemon

മുകളിലുള്ള കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നത് ഏറ്റവും പുതിയ നിക്സ് ബൈനറി ടാർബോൾ ഡൗൺലോഡ് ചെയ്യും, കൂടാതെ സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾ മൾട്ടി-യൂസർ നിക്സ് ഇൻസ്റ്റാളേഷൻ സ്ക്രീനിൽ ഇറങ്ങും.

ഇൻസ്റ്റലേഷൻ പ്രക്രിയയിൽ എന്ത് സംഭവിക്കും എന്നതിന്റെ വിശദമായ ലിസ്റ്റ് കാണുന്നതിന്, y എന്ന് ടൈപ്പ് ചെയ്ത് എന്റർ അമർത്തുക. നിങ്ങൾ തൃപ്തനാണെങ്കിൽ, തുടരാൻ തയ്യാറാണെങ്കിൽ, y എന്ന് ടൈപ്പ് ചെയ്ത് എന്റർ അമർത്തുക.

സ്ക്രിപ്റ്റ് ആവശ്യാനുസരണം നിരവധി തവണ സുഡോ കമാൻഡ് ആവശ്യപ്പെടും. y ഉത്തരം നൽകി എന്റർ അമർത്തി സുഡോ ഉപയോഗിക്കാൻ നിങ്ങൾ അതിനെ അനുവദിക്കേണ്ടതുണ്ട്.

ഇൻസ്റ്റാളർ പിന്നീട് കുറച്ച് പരിശോധനകൾ നടത്തി ഒരു നിക്സ് കോൺഫിഗറേഷൻ റിപ്പോർട്ട് സൃഷ്ടിക്കും, ഉപയോക്തൃ ഐഡികൾ 30001-നും 30032-നും ഇടയിൽ ബിൽഡ് ഉപയോക്താക്കളെ സൃഷ്ടിക്കും, കൂടാതെ ഗ്രൂപ്പ് ഐഡി 30000 ഉള്ള ഒരു ഗ്രൂപ്പും. ആവശ്യപ്പെടുമ്പോൾ തുടരാൻ y നൽകുക. വ്യത്യസ്ത ബിൽഡ് ഉപയോക്താക്കൾക്കായി ഇത് ബിൽഡ് ഗ്രൂപ്പുകൾ സജ്ജീകരിക്കും, നിക്സിന്റെ അടിസ്ഥാന ഡയറക്ടറി ഘടന ഉണ്ടാക്കും.

ഫയൽ /etc/bashrc, (zsh-നുള്ള /etc/zshrc) നിലവിലുണ്ടെങ്കിൽ അത് പരിഷ്ക്കരിക്കും. ഇത് ആദ്യം സൂചിപ്പിച്ച ഫയലുകളെ .backup-before-nix എക്സ്റ്റൻഷൻ ഉപയോഗിച്ച് ബാക്കപ്പ് ചെയ്യുന്നു, കൂടാതെ ഇൻസ്റ്റാളർ ഫയലും /etc/profile.d/nix.sh സൃഷ്ടിക്കുന്നു.

ഇൻസ്റ്റാളർ നിക്സ്-ഡെമൺ സേവനവും നിക്സ്-ഡെമൺ സോക്കറ്റ് സേവനവും സജ്ജീകരിക്കും, നിക്സ്-ഡെമണിനായി systemd യൂണിറ്റ് ലോഡ് ചെയ്യുകയും മുകളിൽ പറഞ്ഞ രണ്ട് സേവനങ്ങൾ ആരംഭിക്കുകയും ചെയ്യും.

ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, നിക്സ് ഉപയോഗിച്ച് തുടങ്ങാൻ നിങ്ങൾ ഒരു പുതിയ ടെർമിനൽ വിൻഡോ തുറക്കേണ്ടതുണ്ട്. പകരമായി, സമീപകാല മാറ്റങ്ങൾ പ്രയോഗിക്കുന്നതിന് നിങ്ങളുടെ ഷെൽ അടച്ച് വീണ്ടും തുറക്കുക. തുടർന്ന് /etc/profile.d/nix.sh ഫയൽ ഉറവിടമാക്കുക (അത് ഒരു ഷെൽ സ്റ്റാർട്ടപ്പ് ഫയലല്ലാത്തതിനാൽ, ഒരു പുതിയ ഷെൽ തുറക്കുന്നത് ഉറവിടമാകില്ല).

$ source /etc/profile.d/nix.sh

അടുത്തതായി, നിക്uസിന് പ്രവർത്തിക്കാൻ ആവശ്യമായ ഔദ്യോഗിക പ്രൊജക്uറ്റ് വെബ്uസൈറ്റിൽ നിന്ന് ചില പാത്തുകൾ ഡൗൺലോഡ് ചെയ്യുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക. എല്ലാ പാതകളും ഡൗൺലോഡ് ചെയ്uത് ശരിയായ ലൊക്കേഷനുകളിലേക്ക് പകർത്തിയ ശേഷം, സ്uക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു സിസ്റ്റവും നിക്uസ് ഇൻസ്റ്റലേഷൻ ടൈപ്പ് സംഗ്രഹവും നിങ്ങൾ കാണും.

$ nix-shell -p nix-info --run "nix-info -m"

ലിനക്സിൽ നിക്സ് പാക്കേജ് മാനേജർ എങ്ങനെ ഉപയോഗിക്കാം

നിക്uസിന് കീഴിൽ, പാക്കേജ് മാനേജ്uമെന്റ് ചെയ്യുന്നത് nix-env യൂട്ടിലിറ്റിയാണ്. പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും അപ്uഗ്രേഡ് ചെയ്യുന്നതിനും നീക്കം ചെയ്യുന്നതിനും/മായ്uക്കുന്നതിനും ഏത് പാക്കേജുകളാണ് ഇൻസ്റ്റോൾ ചെയ്തിരിക്കുന്നത് അല്ലെങ്കിൽ ഇൻസ്റ്റലേഷനായി ലഭ്യമാണെന്ന് അന്വേഷിക്കാനും ഇത് ഉപയോഗിക്കുന്നു.

എല്ലാ പാക്കേജുകളും നിക്uസ് ചാനലിലാണ് സ്ഥിതി ചെയ്യുന്നത്, ഇത് നിക്uസ് എക്uസ്uപ്രഷനുകളുടെ ഒരു ശേഖരവും ബൈനറി കാഷെയിലേക്കുള്ള പോയിന്ററും അടങ്ങുന്ന ഒരു ശേഖരത്തിലേക്ക് ചൂണ്ടിക്കാണിക്കുന്ന ഒരു URL ആണ്.

സ്ഥിരസ്ഥിതി ചാനൽ Nixpkgs ആണ്, സബ്uസ്uക്രൈബ് ചെയ്uത ചാനലുകളുടെ ലിസ്റ്റ് ~/.nix-channels-ൽ സംഭരിച്ചിരിക്കുന്നു, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് അവ ലിസ്റ്റ് ചെയ്യാം (ഔട്ട്uപുട്ട് ഇല്ല എന്നർത്ഥം ചാനലുകൾ ഇല്ല എന്നാണ്).

$ nix-channel --list

നിക്സ് ചാനൽ ചേർക്കുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക.

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

നിങ്ങൾ ഏതെങ്കിലും പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുമുമ്പ്, നിക്സ് ചാനൽ അപ്ഡേറ്റ് ചെയ്തുകൊണ്ട് ആരംഭിക്കുക; ഇത് APT പാക്കേജ് മാനേജറിന് കീഴിൽ apt അപ്uഡേറ്റ് പ്രവർത്തിപ്പിക്കുന്നതിന് സമാനമാണ്.

$ nix-channel --update

താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് ഇൻസ്റ്റലേഷനു വേണ്ടി ഏതൊക്കെ പാക്കേജുകൾ ലഭ്യമാണ് എന്ന് നിങ്ങൾക്ക് അന്വേഷിക്കാവുന്നതാണ്.

$ nix-env -qa

ഈ ഉദാഹരണത്തിൽ, കാണിച്ചിരിക്കുന്നതുപോലെ ഇൻസ്റ്റാൾ ചെയ്യാൻ ലഭ്യമായ പാക്കേജ് കണ്ടെത്താൻ ഞങ്ങൾ grep ഇൻസ്റ്റാൾ ചെയ്യും.

$ nix-env -qa | grep "apache-tomcat"

ഒരു പാക്കേജ് ഇൻസ്റ്റോൾ ചെയ്യുന്നതിനായി, പാക്കേജ് പതിപ്പ് വ്യക്തമാക്കി താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക, ഉദാഹരണത്തിന് apache-tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2

ലോക്കൽ സിസ്റ്റത്തിൽ, നിക്സ് പാക്കേജുകൾ നിക്സ് സ്റ്റോറിൽ സംഭരിക്കുന്നു, അത് ഡിഫോൾട്ടായി /nix/സ്റ്റോർ ഡയറക്ടറിയാണ്, ഓരോ പാക്കേജിനും അതിന്റേതായ തനതായ സബ് ഡയറക്ടറി ഉണ്ട്. ഉദാഹരണത്തിന്, അപ്പാച്ചെ-ടോംകാറ്റ് പാക്കേജുകൾ ഇവിടെ സംഭരിച്ചിരിക്കുന്നു:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2

ഈ പാതയിൽ, റാൻഡം പ്രതീകങ്ങളായ 95gmgnxlrcpkhlm00fa5ax8kvd6189py പാക്കേജിനുള്ള ഒരു തനതായ ഐഡന്റിഫയറാണ്, അത് അതിന്റെ എല്ലാ ഡിപൻഡൻസികളും കണക്കിലെടുക്കുന്നു.

താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇൻസ്റ്റാൾ ചെയ്ത പാക്കേജുകൾ ലിസ്റ്റ് ചെയ്യാം.

$ nix-env -q

apache-tomcat പാക്കേജ് അപ്uഗ്രേഡ് ചെയ്യുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് -u അപ്uഗ്രേഡ് സ്വിച്ച് ഉപയോഗിക്കാം.

$ nix-env -u apache-tomcat

നിങ്ങൾക്ക് apache-tomcat നീക്കം/മായ്uക്കണമെങ്കിൽ, -e ഫ്ലാഗ് ഉപയോഗിക്കുക. ഇവിടെ, ഒരു പാക്കേജ് ഉടനടി സിസ്റ്റത്തിൽ നിന്ന് മായ്uക്കില്ല, അത് ഉപയോഗിക്കാതെ റെൻഡർ ചെയ്യുക മാത്രമാണ് ചെയ്യുന്നത്. നിങ്ങൾ ഒരു റോൾബാക്ക് ചെയ്യാൻ ആഗ്രഹിക്കുന്നതിനാൽ ഇത് ഉപയോഗപ്രദമാണ്, അല്ലെങ്കിൽ ഇത് മറ്റ് ഉപയോക്താക്കളുടെ പ്രൊഫൈലുകളിലായിരിക്കാം.

$ nix-env -e apache-tomcat

ഒരു പാക്കേജ് നീക്കം ചെയ്uത ശേഷം, നിക്uസ് കളക്uട്-ഗാർബേജ് യൂട്ടിലിറ്റി ഉപയോഗിച്ച് നിങ്ങൾക്ക് കുറച്ച് മാലിന്യ ശേഖരണം നടത്താം.

$ nix-collect-garbage

ലിനക്സിൽ നിക്സ് പാക്കേജ് മാനേജർ എങ്ങനെ നീക്കം ചെയ്യാം

Nix അൺഇൻസ്റ്റാൾ ചെയ്യാൻ, നിക്uസുമായി ബന്ധപ്പെട്ട എല്ലാ ഫയലുകളും ഒറ്റയടിക്ക് നീക്കം ചെയ്യുക.

$ sudo rm -rf /etc/profile/nix.sh /etc/nix /nix ~root/.nix-profile ~root/.nix-defexpr ~root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

systemd ഉള്ള സിസ്റ്റങ്ങളിൽ, എല്ലാ nix-മായി ബന്ധപ്പെട്ട സേവനങ്ങളും നിർത്താനും അവ പ്രവർത്തനരഹിതമാക്കാനും ഇനിപ്പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക.

$ sudo systemctl stop nix-daemon.socket
$ sudo systemctl stop nix-daemon.service
$ sudo systemctl disable nix-daemon.socket
$ sudo systemctl disable nix-daemon.service
$ sudo systemctl daemon-reload

കൂടാതെ, ഈ ഫയലുകളിൽ Nix-നെ കുറിച്ചുള്ള ഏതെങ്കിലും റഫറൻസുകൾ നിങ്ങൾ നീക്കം ചെയ്യേണ്ടതുണ്ട്: /etc/profile, /etc/bashrc, കൂടാതെ /etc/zshrc.

കൂടുതൽ വിവരങ്ങൾക്ക്, ഞങ്ങൾ നോക്കിയ മുകളിലെ യൂട്ടിലിറ്റികളുടെ മാൻ പേജുകൾ കാണുക.

$ man nix-channel
$ man nix-env

പ്രൊജക്uറ്റ് വെബ്uസൈറ്റിൽ നിക്uസ് പാക്കേജ് മാനേജർ ഡോക്യുമെന്റേഷൻ നിങ്ങൾക്ക് കണ്ടെത്താം: https://nixos.org/nix/.

വിശ്വസനീയവും പുനരുൽപ്പാദിപ്പിക്കാവുന്നതുമായ പാക്കേജ് മാനേജുമെന്റിനായി രൂപകൽപ്പന ചെയ്ത പൂർണ്ണമായും പ്രവർത്തനക്ഷമമായ പാക്കേജ് മാനേജരാണ് നിക്സ്. ലിനക്സിൽ സാധാരണയായി ഉപയോഗിക്കുന്ന APT പോലുള്ള ടൂളുകളിൽ നിന്നും വളരെ വ്യത്യസ്തമായ പാക്കേജ് മാനേജ്മെന്റിന്റെ രസകരമായ ഒരു ആശയം ഇത് നൽകുന്നു.

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