ലിനക്സിലെ RPM പാക്കേജ് മാനേജ്മെന്റിനുള്ള 27 DNF (Fork of Yum) കമാൻഡുകൾ


RPM അധിഷ്ഠിത വിതരണത്തിനായുള്ള ഒരു അടുത്ത തലമുറ പാക്കേജ് മാനേജരാണ് DNF അല്ലെങ്കിൽ Dandified YUM. ഇത് ആദ്യമായി ഫെഡോറ 18-ൽ അവതരിപ്പിച്ചു, ഇത് ഫെഡോറ 22-ന് പകരമായി.

പ്രകടനം, മെമ്മറി ഉപയോഗങ്ങൾ, ഡിപൻഡൻസി റെസല്യൂഷൻ, വേഗത തുടങ്ങി നിരവധി ഘടകങ്ങൾ YUM-ന്റെ തടസ്സങ്ങൾ മെച്ചപ്പെടുത്തുകയാണ് DNF ലക്ഷ്യമിടുന്നത്. RPM, libsolv, Hawkey ലൈബ്രറി എന്നിവ ഉപയോഗിച്ച് DNF പാക്കേജ് മാനേജ്മെന്റ് ചെയ്യുന്നു. CentOS-ലും RHEL 7-ലും ഇത് ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിലും നിങ്ങൾക്ക് yum, dnf എന്നിവയ്uക്കൊപ്പം yum-നൊപ്പം ഇത് ഉപയോഗിക്കാം.

ഡിഎൻഎഫിനെക്കുറിച്ച് ഇവിടെ കൂടുതൽ വായിക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം:

  1. യമ്മിനെ DNF ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നതിനുള്ള കാരണങ്ങൾ

DNF-ന്റെ ഏറ്റവും പുതിയ സ്ഥിരതയുള്ള പതിപ്പ് 1.0 ആണ് (പോസ്uറ്റ് എഴുതുമ്പോൾ) അത് 2015 മെയ് 11-ന് പുറത്തിറങ്ങി. ഇത് (DNF-ന്റെ എല്ലാ മുൻ പതിപ്പുകളും) കൂടുതലും പൈത്തണിൽ എഴുതിയതും GPL v2 ലൈസൻസിന് കീഴിലാണ് പുറത്തിറങ്ങുന്നതും.

RHEL/CentOS 7-ന്റെ ഡിഫോൾട്ട് റിപ്പോസിറ്ററിയിൽ DNF ലഭ്യമല്ല. എന്നിരുന്നാലും ഔദ്യോഗികമായി നടപ്പിലാക്കിയ DNF-നൊപ്പം ഫെഡോറ 22 ഷിപ്പ് ചെയ്യുന്നു.

RHEL/CentOS സിസ്റ്റങ്ങളിൽ DNF ഇൻസ്റ്റോൾ ചെയ്യുന്നതിന്, നിങ്ങൾ ആദ്യം epel-release repository ഇൻസ്റ്റാൾ ചെയ്ത് പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്.

# yum install epel-release
OR
# yum install epel-release -y

നിങ്ങളുടെ സിസ്റ്റത്തിൽ എന്താണ് ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നതെന്ന് കാണാൻ ശുപാർശ ചെയ്യുന്നതിനാൽ yum-നൊപ്പം '-y' ഉപയോഗിക്കുന്നത് ധാർമ്മികമല്ലെങ്കിലും. എന്നിരുന്നാലും, ഇത് നിങ്ങൾക്ക് കാര്യമാക്കുന്നില്ലെങ്കിൽ, ഉപയോക്താവിന്റെ ഇടപെടലില്ലാതെ എല്ലാം സ്വയമേവ ഇൻസ്റ്റാൾ ചെയ്യാൻ yum-നൊപ്പം '-y' ഉപയോഗിക്കാം.

അടുത്തതായി, epel-release repository-ൽ നിന്നുള്ള yum കമാൻഡ് ഉപയോഗിച്ച് DNF പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക.

# yum install dnf

dnf വിജയകരമായി ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, RPM അടിസ്ഥാനമാക്കിയുള്ള വിതരണത്തിലെ പാക്കേജുകൾ എളുപ്പത്തിലും ഫലപ്രദമായും കൈകാര്യം ചെയ്യാൻ നിങ്ങളെ സഹായിക്കുന്ന ഉദാഹരണങ്ങളോടെ dnf കമാൻഡുകളുടെ 27 പ്രായോഗിക ഉപയോഗം കാണിക്കാനുള്ള സമയമാണിത്.

നിങ്ങളുടെ സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്ന DNF പതിപ്പ് പരിശോധിക്കുക.

# dnf --version

dnf കമാൻഡുള്ള 'repolist' ഓപ്ഷൻ, നിങ്ങളുടെ സിസ്റ്റത്തിന് കീഴിൽ പ്രവർത്തനക്ഷമമാക്കിയ എല്ലാ റിപ്പോസിറ്ററികളും പ്രദർശിപ്പിക്കും.

# dnf repolist

'repolist all' എന്ന ഓപ്uഷൻ നിങ്ങളുടെ സിസ്റ്റത്തിന് കീഴിലുള്ള എല്ലാ പ്രവർത്തനക്ഷമമാക്കിയ/അപ്രാപ്uതമാക്കിയ ശേഖരണങ്ങളും പ്രിന്റ് ചെയ്യും.

# dnf repolist all

dnf list എന്ന കമാൻഡ് നിങ്ങളുടെ Linux സിസ്റ്റത്തിലെ എല്ലാ റിപ്പോസിറ്ററികളിൽ നിന്നും ഇൻസ്റ്റോൾ ചെയ്ത പാക്കേജുകളിൽ നിന്നും ലഭ്യമായ എല്ലാ പാക്കേജുകളും ലിസ്റ്റ് ചെയ്യും.

# dnf list

“dnf list” കമാൻഡ് എല്ലാ റിപ്പോസിറ്ററികളിൽ നിന്നും ലഭ്യമായ/ഇൻസ്റ്റാൾ ചെയ്ത എല്ലാ പാക്കേജുകളും കാണിക്കുമ്പോൾ. എന്നിരുന്നാലും, ചുവടെ കാണിച്ചിരിക്കുന്നതുപോലെ ലിസ്റ്റ് ഇൻസ്റ്റാൾ ഓപ്ഷൻ ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്ത പാക്കേജുകൾ മാത്രം ലിസ്റ്റ് ചെയ്യാനുള്ള ഓപ്ഷൻ നിങ്ങൾക്കുണ്ട്.

# dnf list installed

അതുപോലെ, ലഭ്യമായ ലിസ്റ്റ് ഓപ്ഷൻ, പ്രവർത്തനക്ഷമമാക്കിയ എല്ലാ ശേഖരണങ്ങളിൽ നിന്നും ഇൻസ്റ്റാൾ ചെയ്യാൻ ലഭ്യമായ എല്ലാ പാക്കേജുകളും ലിസ്റ്റ് ചെയ്യും.

# dnf list available

അങ്ങനെയെങ്കിൽ, നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ ആഗ്രഹിക്കുന്ന പാക്കേജിനെക്കുറിച്ച് നിങ്ങൾക്ക് യാതൊരു ധാരണയുമില്ല, അത്തരം സാഹചര്യത്തിൽ പദത്തിനോ സ്uട്രിംഗിനോടും പൊരുത്തപ്പെടുന്ന പാക്കേജിനായി തിരയാൻ നിങ്ങൾക്ക് dnf കമാൻഡ് ഉപയോഗിച്ച് 'search' ഓപ്ഷൻ ഉപയോഗിക്കാം (നാനോ എന്ന് പറയുക).

# dnf search nano

dnf ഓപ്ഷൻ നൽകുന്നു നിർദ്ദിഷ്ട ഫയൽ/ഉപ-പാക്കേജ് നൽകുന്ന പാക്കേജിന്റെ പേര് കണ്ടെത്തുന്നു. ഉദാഹരണത്തിന്, നിങ്ങളുടെ സിസ്റ്റത്തിൽ എന്താണ് '/bin/bash' നൽകുന്നതെന്ന് കണ്ടെത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ?

# dnf provides /bin/bash

സിസ്റ്റത്തിൽ ഒരു പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനു മുമ്പ് അതിന്റെ വിവരങ്ങൾ അറിയാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് കരുതുക, ചുവടെയുള്ള ഒരു പാക്കേജിനെക്കുറിച്ചുള്ള വിശദമായ വിവരങ്ങൾ (നാനോ എന്ന് പറയുക) ലഭിക്കുന്നതിന് നിങ്ങൾക്ക് ഇൻഫോ സ്വിച്ച് ഉപയോഗിക്കാം.

# dnf info nano

നാനോ എന്ന് വിളിക്കുന്ന ഒരു പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യാൻ, താഴെയുള്ള കമാൻഡ് പ്രവർത്തിപ്പിക്കുക, അത് സ്വയം പരിഹരിക്കുകയും പാക്കേജ് നാനോയ്ക്ക് ആവശ്യമായ എല്ലാ ഡിപൻഡൻസികളും ഇൻസ്റ്റാൾ ചെയ്യുകയും ചെയ്യും.

# dnf install nano

നിങ്ങൾക്ക് ഒരു നിർദ്ദിഷ്uട പാക്കേജ് മാത്രം അപ്uഡേറ്റ് ചെയ്യാം (systemd എന്ന് പറയുക) കൂടാതെ സിസ്റ്റത്തിലെ എല്ലാം സ്പർശിക്കാതെ വിടുക.

# dnf update systemd

സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള എല്ലാ സിസ്റ്റം പാക്കേജുകളുടെയും അപ്uഡേറ്റുകൾ പരിശോധിക്കുക.

# dnf check-update

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

# dnf update
OR
# dnf upgrade

ഏതെങ്കിലും അനാവശ്യ പാക്കേജ് നീക്കം ചെയ്യാനോ മായ്uക്കാനോ (നാനോ എന്ന് പറയുക), അത് നീക്കം ചെയ്യുന്നതിനായി നിങ്ങൾക്ക് dnf കമാൻഡ് ഉപയോഗിച്ച് “നീക്കം ചെയ്യുക” അല്ലെങ്കിൽ “മായ്ക്കുക” സ്വിച്ച് ഉപയോഗിക്കാം.

# dnf remove nano
OR
# dnf erase nano

ആശ്രിതത്വം തൃപ്തിപ്പെടുത്താൻ ഇൻസ്റ്റാൾ ചെയ്ത പാക്കേജുകൾ മറ്റ് ആപ്ലിക്കേഷനുകൾ ഉപയോഗിക്കുന്നില്ലെങ്കിൽ ഉപയോഗശൂന്യമായേക്കാം. ആ അനാഥ പാക്കേജുകൾ നീക്കം ചെയ്യാൻ താഴെയുള്ള കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുക.

# dnf autoremove

കാലഹരണപ്പെട്ട തലക്കെട്ടുകളും പൂർത്തിയാകാത്ത ഇടപാടുകളും ഞങ്ങൾ ഒരുപാട് സമയം കണ്ടുമുട്ടുന്നു, ഇത് dnf എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ പിശകിന് കാരണമാകുന്നു. കാഷെ ചെയ്uത എല്ലാ പാക്കേജുകളും റിമോട്ട് പാക്കേജ് വിവരങ്ങൾ അടങ്ങിയ ഹെഡറുകളും ഞങ്ങൾ എക്uസിക്യൂട്ട് ചെയ്യുന്നതിലൂടെ വൃത്തിയാക്കാം.

# dnf clean all

ചുവടെയുള്ള കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിലൂടെ നിങ്ങൾക്ക് ഏതെങ്കിലും നിർദ്ദിഷ്ട dnf കമാൻഡിന്റെ സഹായം ലഭിക്കും (ക്ലീൻ എന്ന് പറയുക).

# dnf help clean

ലഭ്യമായ എല്ലാ dnf കമാൻഡുകളിലെയും സഹായം ലിസ്റ്റുചെയ്യുന്നതിന്, ഓപ്ഷൻ ടൈപ്പ് ചെയ്യുക.

# dnf help

ഇതിനകം നടപ്പിലാക്കിയ dnf കമാൻഡുകളുടെ ലിസ്റ്റ് നോക്കാൻ നിങ്ങൾക്ക് dnf ചരിത്രത്തിലേക്ക് വിളിക്കാം. ടൈം സ്റ്റാമ്പ് ഉപയോഗിച്ച് എന്താണ് ഇൻസ്റ്റാൾ ചെയ്തത്/നീക്കം ചെയ്തതെന്ന് ഇതുവഴി നിങ്ങൾക്ക് അറിയാനാകും.

# dnf history

“dnf grouplist” എന്ന കമാൻഡ് ലഭ്യമായതോ ഇൻസ്റ്റാൾ ചെയ്തതോ ആയ എല്ലാ പാക്കേജുകളും പ്രിന്റ് ചെയ്യും, ഒന്നും സൂചിപ്പിച്ചിട്ടില്ലെങ്കിൽ, അത് അറിയപ്പെടുന്ന എല്ലാ ഗ്രൂപ്പുകളും ലിസ്റ്റ് ചെയ്യും.

# dnf grouplist

ഒരു ഗ്രൂപ്പ് പാക്കേജുകൾ ഒരു ഗ്രൂപ്പ് പാക്കേജായി (വിദ്യാഭ്യാസ സോഫ്റ്റ്uവെയർ എന്ന് പറയാം) ലളിതമായി ഇൻസ്റ്റാൾ ചെയ്യാൻ.

# dnf groupinstall 'Educational Software'

താഴെ പറയുന്ന കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്തുകൊണ്ട് നമുക്ക് ഒരു ഗ്രൂപ്പ് പാക്കേജ് (വിദ്യാഭ്യാസ സോഫ്റ്റ്uവെയർ എന്ന് പറയാം) അപ്uഡേറ്റ് ചെയ്യാം.

# dnf groupupdate 'Educational Software'

നമുക്ക് ഗ്രൂപ്പ് പാക്കേജ് (വിദ്യാഭ്യാസ സോഫ്uറ്റ്uവെയർ എന്ന് പറയാം) നീക്കം ചെയ്യാം.

# dnf groupremove 'Educational Software'

ഒരു റിപ്പോയിൽ (epel) നിന്ന് ഏതെങ്കിലും നിർദ്ദിഷ്ട പാക്കേജ് (phpmyadmin എന്ന് പറയുക) ഇൻസ്റ്റാൾ ചെയ്യുന്നത് DNF സാധ്യമാക്കുന്നു,

# dnf --enablerepo=epel install phpmyadmin

dnf distro-sync എന്ന കമാൻഡ്, പ്രവർത്തനക്ഷമമാക്കിയിട്ടുള്ള ഏതെങ്കിലും ശേഖരത്തിൽ നിന്നും ലഭ്യമായ ഏറ്റവും പുതിയ സ്ഥിരതയുള്ള പതിപ്പിലേക്ക് ഇൻസ്റ്റാൾ ചെയ്ത എല്ലാ പാക്കേജുകളും സമന്വയിപ്പിക്കുന്നതിന് ആവശ്യമായ ഓപ്ഷനുകൾ നൽകുന്നു. പാക്കേജുകളൊന്നും തിരഞ്ഞെടുത്തിട്ടില്ലെങ്കിൽ, ഇൻസ്റ്റാൾ ചെയ്ത എല്ലാ പാക്കേജുകളും സമന്വയിപ്പിക്കപ്പെടുന്നു.

# dnf distro-sync

dnf reinstall nano എന്ന കമാൻഡ് ഇതിനകം ഇൻസ്റ്റാൾ ചെയ്ത ഒരു പാക്കേജ് വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്യും (നാനോ എന്ന് പറയുക).

# dnf reinstall nano

ഡൗൺഗ്രേഡ് എന്ന ഓപ്uഷൻ പേരിട്ടിരിക്കുന്ന പാക്കേജിനെ (acpid എന്ന് പറയുക) സാധ്യമെങ്കിൽ താഴ്ന്ന പതിപ്പിലേക്ക് തരംതാഴ്ത്തും.

# dnf downgrade acpid
Using metadata from Wed May 20 12:44:59 2015
No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.

എന്റെ നിരീക്ഷണം: DNF പാക്കേജിനെ അത് ഉദ്ദേശിച്ചതുപോലെ തരംതാഴ്ത്തിയിട്ടില്ല. ഇത് ബഗ് ആണെന്നും റിപ്പോർട്ട് ചെയ്തിട്ടുണ്ട്.

ഉപസംഹാരം

ആർട്ട് പാക്കേജ് മാനേജർ YUM-ന്റെ അവസാനത്തെ മുകളിലെ അവസ്ഥയാണ് DNF. ഞാൻ വിശ്വസിക്കുന്നതുപോലെ, പരിചയസമ്പന്നരായ പല ലിനക്സ് സിസ്റ്റം അഡ്uമിനിസ്uട്രേറ്റർ പ്രശംസിക്കാത്ത നിരവധി പ്രോസസ്സിംഗ് സ്വയമേവ ചെയ്യാൻ ഇത് പ്രവണത കാണിക്കുന്നു. ഉദാഹരണമായി:

  1. --skip-broken എന്നത് DNF തിരിച്ചറിഞ്ഞിട്ടില്ല, മറ്റൊരു ബദലില്ല.
  2. 'resolvedep' കമാൻഡ് പോലെ ഒന്നുമില്ല, എന്നിരുന്നാലും നിങ്ങൾക്ക് dnf പ്രദാനം ചെയ്യാവുന്നതാണ്.
  3. പാക്കേജ് ഡിപൻഡൻസി കണ്ടെത്താൻ 'deplist' കമാൻഡ് ഇല്ല.
  4. നിങ്ങൾ ഒരു റിപ്പോ ഒഴിവാക്കുന്നു എന്നതിനർത്ഥം, എല്ലാ പ്രവർത്തനങ്ങളിലും ഒഴിവാക്കൽ ബാധകമാണ്, yum-ൽ നിന്ന് വ്യത്യസ്തമായി, ഇൻസ്റ്റാളും അപ്uഡേറ്റുകളും ചെയ്യുമ്പോൾ മാത്രം ആ റിപ്പോകൾ ഒഴിവാക്കുന്നു.

ലിനക്സ് ഇക്കോസിസ്റ്റം ചലിക്കുന്ന രീതിയിൽ നിരവധി ലിനക്സ് ഉപയോക്താക്കൾ സന്തുഷ്ടരല്ല. ആദ്യം Systemd നീക്കം ചെയ്ത init സിസ്റ്റം v, ഇപ്പോൾ DNF ഫെഡോറ 22-ലും പിന്നീട് RHEL, CentOS എന്നിവയിലും YUM-നെ മാറ്റിസ്ഥാപിക്കും.

നീ എന്ത് ചിന്തിക്കുന്നു? വിതരണങ്ങളാണ്, മുഴുവൻ ലിനക്സ് ഇക്കോസിസ്റ്റവും അതിന്റെ ഉപയോക്താക്കളെ വിലമതിക്കുകയും അവരുടെ ഇഷ്ടത്തിന് വിരുദ്ധമായി നീങ്ങുകയും ചെയ്യുന്നില്ല. കൂടാതെ, ഐടി വ്യവസായത്തിൽ ഇത് പലപ്പോഴും പറയാറുണ്ട് - \എന്തുകൊണ്ട് ശരിയാക്കണം, തകർന്നിട്ടില്ലെങ്കിൽ?, കൂടാതെ init സിസ്റ്റം V തകർന്നിട്ടില്ല അല്ലെങ്കിൽ YUM അല്ല.

ഇപ്പോഴത്തേക്ക് ഇത്രമാത്രം. ചുവടെയുള്ള അഭിപ്രായങ്ങളിൽ നിങ്ങളുടെ വിലയേറിയ ചിന്തകൾ എന്നെ അറിയിക്കുക. ഞങ്ങളെ ലൈക്ക് ചെയ്ത് ഷെയർ ചെയ്ത് പ്രചരിപ്പിക്കാൻ ഞങ്ങളെ സഹായിക്കൂ.