apt கட்டளைகளுக்கு இணையான dnf கட்டளைகள்: முழுமையான
Rocky Linux மற்றும் Fedora-வில் apt-க்கு இணையான dnf கட்டளைகளை அறியுங்கள். தொகுப்பு மேலாண்மை, repository சேர்த்தல் மற்றும் rollback செயல்பாடுகளுக்கான நேரடி ஒப்பீட்டுப் பட்டியல்.
சுருக்கமான பதில்
apt-லிருந்து dnf-க்கு மாறுவது என்பது பெரும்பாலும் சொற்களை மாற்றிக்கொள்வது போன்றது. apt install nginx என்பது dnf install nginx ஆகிறது. apt remove nginx என்பது dnf remove nginx ஆகிறது. apt update-க்கு நேரடி இணையான கட்டளை இல்லை, ஏனெனில் cached copy பழையதாகும்போது dnf தானாகவே அதன் repository metadata-வை புதுப்பித்துக்கொள்ளும். இந்த மாற்றத்தின் எளிமையான பகுதி ஒரு திரையில் அடங்கிவிடும். பயனுள்ள பகுதி என்பது, எந்த வகையிலும் பொருந்தாத நான்கு செயல்பாடுகள் ஆகும்: ஒரு repository-ஐச் சேர்த்தல், ஒரு transaction-ஐ ரத்து செய்தல், ஒரு package group-ஐ நிறுவுதல் மற்றும் unattended updates-ஐ இயக்குதல்.
கீழே உள்ள ஒவ்வொரு கட்டளையும் உங்கள் server-ல் நீங்கள் இயக்குவதற்காக எழுதப்பட்டுள்ளது. y என்று பதிலளிப்பதற்கு முன், குறிப்பாக நீக்குதல் (removals) செயல்பாடுகளின் போது, dnf காட்டும் transaction summary-ஐ கவனமாகப் படிக்கவும்.
எந்தெந்த distros dnf-ஐயும், எவை apt-ஐயும் பயன்படுத்துகின்றன
Fedora, Red Hat Enterprise Linux (RHEL), மற்றும் RHEL-ன் மறுபதிப்புகளான Rocky Linux, AlmaLinux மற்றும் CentOS Stream ஆகியவற்றில் dnf தொகுப்பு மேலாளராக (package manager) உள்ளது. Debian மற்றும் Debian-ஐ அடிப்படையாகக் கொண்ட அனைத்து இயங்குதளங்களிலும் apt தொகுப்பு மேலாளராக உள்ளது; VPS சூழலில் இது பெரும்பாலும் Ubuntu-வையே குறிக்கும். இதற்கு மூன்றாவது மாற்று கிடையாது. உங்கள் சேவை வழங்குநரின் image பட்டியலில் Rocky Linux அல்லது AlmaLinux இருந்தால், நீங்கள் dnf-ஐப் பயன்படுத்துவீர்கள். Ubuntu இருந்தால், நீங்கள் apt-ஐப் பயன்படுத்துவீர்கள்.
தொகுப்பு வடிவம் (package format) அந்தந்த கருவியைப் பொறுத்தது. dnf ஆனது .rpm கோப்புகளை நிறுவுகிறது மற்றும் அதன் தரவுத்தளம் rpm ஆகும். apt ஆனது .deb கோப்புகளை நிறுவுகிறது மற்றும் அதன் தரவுத்தளம் dpkg ஆகும். இதனால்தான் பல மென்பொருள் விற்பனையாளர்களின் நிறுவல் பக்கங்களில் ஒவ்வொரு குடும்பத்திற்கும் தனித்தனி தாவல்கள் (tabs) உள்ளன, மேலும் ஒரு திட்டத்தின் வெளியீட்டுப் பக்கத்திலிருந்து பதிவிறக்கம் செய்யப்பட்ட .deb கோப்பு Rocky Linux-ல் பயனற்றதாகிறது.
நீங்கள் எந்தக் குடும்பத்தைத் தேர்ந்தெடுத்தாலும், முதல்முறை உள்நுழைந்த பிறகு செய்ய வேண்டிய பணிகள் ஒன்றுதான். புதிய VPS-ல் முதல் பத்து நிமிடங்கள் என்ற வழிகாட்டி இரண்டிற்கும் பொருந்தும். நிறுவல் கட்டளை (install command) மட்டுமே மாறுபடும்.
ஒவ்வொரு apt கட்டளைக்கும் அதன் dnf இணையான கட்டளை
நிறுவுதல் (Install), நீக்குதல் (Remove), தேடுதல் (Search) மற்றும் காட்டுதல் (Show). இவை இரண்டு பக்கங்களிலும் கிட்டத்தட்ட ஒரே மாதிரியான சொற்களையே பயன்படுத்துகின்றன.
# apt
sudo apt install nginx
sudo apt remove nginx
apt search nginx
apt show nginx
# dnf
sudo dnf install nginx
sudo dnf remove nginx
dnf search nginx
dnf info nginxapt show என்பது dnf info ஆகும். இந்தத் தொகுப்பில் பெயர் மாற்றப்பட்ட ஒரே வினை இதுதான், ஆனால் இதன் செயல்பாட்டில் ஒரு சிறிய வேறுபாடு உள்ளது, இது பலரை குழப்பமடையச் செய்யும். dnf remove மற்ற எதற்கும் தேவைப்படாத dependencies-ஐயும் நீக்கிவிடும், ஆனால் apt remove அவற்றை அப்படியே விட்டுவிடும், அவற்றை பின்னர் apt autoremove மூலம் நீக்கலாம். எனவே, Rocky Linux-ல் ஒரு சிறிய utility-ஐ நீக்கும்போது, அதனுடன் ஒரு டஜன் libraries-ஐயும் நீக்க அது பரிந்துரைக்கலாம். உறுதிப்படுத்தும் முன் பட்டியலை கவனமாகப் படிக்கவும்.
Metadata-ஐப் புதுப்பித்தல், என்னென்ன காத்திருக்கின்றன என்று சரிபார்த்தல் மற்றும் upgrade செய்தல்.
# apt
sudo apt update
apt list --upgradable
sudo apt install --only-upgrade nginx
sudo apt upgrade
# dnf
sudo dnf makecache
dnf check-update
sudo dnf upgrade nginx
sudo dnf upgradeapt update என்பது apt பக்கத்தில் கட்டாயமானது, ஏனெனில் apt வட்டில் உள்ள metadata-ஐ மட்டுமே பயன்படுத்தும், பல மாதங்களுக்கு முன்பு archive-லிருந்து நீக்கப்பட்ட பழைய பதிப்பைக்கூட அது நிறுவிவிடும். dnf ஒவ்வொரு பரிவர்த்தனைக்கு முன்பும் தனது cache-ன் வயதைச் சரிபார்த்து, புதிய metadata-ஐத் தானாகவே பதிவிறக்கம் செய்யும், எனவே sudo dnf makecache என்பது அடுத்த நிறுவலின் போது காத்திருக்காமல் இப்போதே பதிவிறக்கத்தை கட்டாயப்படுத்த மட்டுமே பயன்படுகிறது.
apt முழு சிஸ்டம் upgrade-ஐ இரண்டாகப் பிரிக்கிறது, dnf அவ்வாறு செய்வதில்லை. apt upgrade எந்தவொரு installed package-ஐயும் நீக்க மறுத்துவிடும், எனவே ஒரு update-க்கு ஏதேனும் ஒன்றை நீக்க வேண்டியிருந்தால் அது பாதியிலேயே நின்றுவிடும். apt full-upgrade மட்டுமே நீக்க அனுமதிக்கும் பதிப்பாகும். dnf-ல் அத்தகைய கட்டுப்பாடு இல்லை, அதாவது dnf upgrade என்பது apt upgrade-க்கு இணையானது அல்ல, apt full-upgrade-க்கு இணையானது. dnf update என்பது அதே கட்டளைக்கான பழைய alias ஆகும், இது இப்போதும் வேலை செய்யும்.
நீங்கள் இதை script-ல் பயன்படுத்தினால் ஒரு விவரம் முக்கியமானது: dnf check-update updates காத்திருக்கும்போது 100 என்ற status-உடனும், இல்லாதபோது 0 என்ற status-உடனும் வெளியேறும். apt list --upgradable எப்படியிருந்தாலும் 0 என்றே வெளியேறும், எனவே scripts அதன் output-ஐப் பகுப்பாய்வு (parse) செய்ய வேண்டும்.
நிறுவப்பட்டவற்றை பட்டியலிடுதல் மற்றும் ஒரு கோப்பு எந்த package-க்கு சொந்தமானது என்பதைக் கண்டறிதல்.
# apt
dpkg -l
dpkg -S /usr/sbin/nginx
dpkg -L nginx
apt-file search /usr/sbin/nginx
# dnf
dnf list --installed
rpm -qf /usr/sbin/nginx
rpm -ql nginx
dnf provides /usr/sbin/nginxஒவ்வொரு தொகுதியின் கடைசி வரியும் அதற்கு மேலே உள்ளவற்றிலிருந்து மாறுபட்ட கேள்விக்கு பதிலளிக்கிறது. dpkg -S மற்றும் rpm -qf நிறுவப்பட்ட packages-ஐ மட்டுமே தேடும், எனவே அவை "இந்தக் கோப்பை இங்கே வைத்தது எது" என்ற கேள்விக்கு பதிலளிக்கும். apt-file search மற்றும் dnf provides repositories-ஐத் தேடும், எனவே அவை "இந்தக் கோப்பைப் பெற நான் எதை நிறுவ வேண்டும்" என்ற கேள்விக்கு பதிலளிக்கும். apt-file என்பது Ubuntu-வில் ஒரு தனி package ஆகும், இதை முதல்முறை இயக்குவதற்கு முன் sudo apt-file update தேவைப்படும். dnf provides-க்கு கூடுதல் எதுவும் தேவையில்லை, இருப்பினும் முதல்முறை இயக்கும்போது dnf repository கோப்புப் பட்டியல்களைப் பதிவிறக்குவதால் சற்று மெதுவாக இருக்கலாம்.
நீங்கள் இன்னும் நிறுவப்படாத ஒரு package-க்குள் உள்ள கோப்புகளைப் பட்டியலிட, dnf repoquery -l nginx-ஐப் பயன்படுத்தவும். apt பக்கத்தில் அது apt-file list nginx ஆகும்.
Autoremove, cache-ஐச் சுத்தம் செய்தல், ஒரு பதிப்பைத் தடுத்து வைத்தல் (Hold).
# apt
sudo apt autoremove
sudo apt clean
sudo apt-mark hold nginx
apt-mark showhold
sudo apt-mark unhold nginx
# dnf
sudo dnf autoremove
sudo dnf clean all
sudo dnf versionlock add nginx
dnf versionlock list
sudo dnf versionlock delete nginxversionlock என்பது Rocky Linux அல்லது AlmaLinux-ல் இயல்பாக நிறுவப்பட்டிருக்காது, எனவே புதிய கணினியில் அந்த வரிகளில் முதலாவது No such command: versionlock பிழையுடன் தோல்வியடையும். முதலில் அதை sudo dnf install python3-dnf-plugin-versionlock மூலம் நிறுவவும். apt-mark hold-க்கு apt-ல் கூடுதல் எதுவும் தேவையில்லை, ஏனெனில் hold என்பது ஒரு plugin-ஐ விட dpkg-ன் ஒரு நிலையாகும்.
மேப்பிங் எங்கு தவறுகிறது: ஒரு களஞ்சியத்தைச் சேர்த்தல்
Ubuntu நிர்வாகிகளை இல்லாத ஒரு கட்டளையைத் தேட வைக்கும் பகுதி இது. add-apt-repository என்பது dnf-ல் இல்லை, மேலும் இதில் personal package archives (PPAs) கிடையாது. PPA என்பது Launchpad-ஆல் இயக்கப்படும் ஒரு சேவை, Launchpad என்பது Ubuntu-வின் உள்கட்டமைப்பு ஆகும். RPM உலகில் எங்கும் PPA கிடையாது.
இதற்குப் பதிலாக, dnf-ல் ஒவ்வொரு களஞ்சியத்திற்கும் /etc/yum.repos.d/-க்குள் .repo-ல் முடியும் ஒரு plain text கோப்பு மட்டுமே இருக்கும்.
[docker-ce-stable]
name=Docker CE Stable
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg$releasever மற்றும் $basearch ஆகியவை dnf மாறிகள் (variables) ஆகும். இயங்கும் நேரத்தில் உங்கள் major release எண் மற்றும் CPU architecture-ஐ dnf தானாகவே நிரப்புகிறது. எனவே, ஒரே கோப்பு version 9 மற்றும் version 10-லும், x86_64 மற்றும் aarch64-லும் வேலை செய்யும்.
பெரும்பாலான விற்பனையாளர்கள் அந்த கோப்பை வெளியிட்டு, அதைத் தரவிறக்கம் செய்யுமாறு அறிவுறுத்துவார்கள். RHEL மற்றும் அதன் rebuild-களுக்கான Docker-ன் சொந்த வழிமுறைகள் இரண்டு கட்டளைகளைக் கொண்டவை:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoமுதல் வரி அங்கு இருப்பதற்குக் காரணம், config-manager என்பது dnf-ன் ஒரு பகுதி அல்ல, அது ஒரு plugin ஆகும். அதைத் தவிர்த்தால், இரண்டாவது வரி No such command: config-manager பிழையுடன் தோல்வியடையும். அதே .repo கோப்பை curl மூலம் /etc/yum.repos.d/-க்கு நீங்களே தரவிறக்கம் செய்வதைத் தடுக்க எதுவுமில்லை, அதன் விளைவும் ஒன்றுதான். VPS-ல் Docker-ஐ நிறுவுதல் என்ற பகுதி Debian-ல் இதே பணியைச் செய்வதை விளக்குகிறது; அங்கு அதற்கு இணையான படி, ஒரு source list மற்றும் signing key-ஐ இரண்டு வெவ்வேறு கோப்பகங்களில் எழுதும்.
ஒரு களஞ்சியம் சரியாகச் செயல்படாதபோது எங்கு பார்க்க வேண்டும் என்பதை இந்த அமைப்பு வேறுபாடு தீர்மானிக்கிறது. apt அதன் வரையறைகளை /etc/apt/sources.list மற்றும் /etc/apt/sources.list.d/-ல் வைத்திருக்கும், signing keys-ஐ /etc/apt/keyrings/-ன் கீழ் தனித்தனியாக வைத்திருக்கும். dnf அனைத்தையும் /etc/yum.repos.d/-ல் வைத்திருக்கும், மேலும் key என்பது .repo கோப்பிற்குள் இருக்கும் ஒரு URL ஆகும். எனவே, வாசிப்பதற்கும் நீக்குவதற்கும் ஒரே ஒரு கோப்பு மட்டுமே இருக்கும். புதிய apt, deb822 வடிவமைப்பின் மூலம் இதே நிலையை நோக்கி நகர்ந்துள்ளது, அதாவது ஒரு களஞ்சியத்திற்கு ஒரு .sources கோப்பு. நீங்கள் Ubuntu-வில் deb822 duplicate sources பிழையை சந்தித்திருந்தால், இந்தப் பிரச்சினையின் apt பாதியை நீங்கள் ஏற்கனவே பார்த்திருப்பீர்கள்.
EPEL என்பது பெரும்பாலான வழிகாட்டிகள் எதிர்பார்க்கும் காப்பகம் (archive)
Extra Packages for Enterprise Linux (EPEL) என்பது RHEL மற்றும் அதன் மறுபதிப்புகளுக்காக Fedora தொகுப்புகளை உருவாக்கும் ஒரு Fedora திட்டமாகும். இது உலகளாவிய PPA-க்கு இணையான ஒரு அமைப்பாகும். பெரும்பாலான தொழில்நுட்ப வழிகாட்டிகள் இது ஏற்கனவே இயக்கப்பட்டிருப்பதாகவே கருதுகின்றன. திட்டத்தின் இணையதளத்தில் நீங்கள் காணும் ஒரு தொகுப்பிற்கு dnf install கட்டளை No match for argument என்று பதிலளித்தால், முதலில் EPEL-ஐச் சரிபார்க்க வேண்டும்.
Rocky Linux மற்றும் AlmaLinux-ல்:
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
sudo dnf makecacheCRB என்பது CodeReady Builder ஆகும். இது விநியோகத்துடன் வரும் நூலகங்களின் களஞ்சியம் (repository), ஆனால் இது இயல்பாகவே இயக்கப்பட்டிருக்காது. பெரும்பாலான EPEL தொகுப்புகள் இதிலுள்ள ஏதேனும் ஒன்றைச் சார்ந்திருக்கும். எனவே, CRB இல்லாமல் EPEL-ஐ மட்டும் இயக்கினால், அந்த நேரத்தில் பிழை ஏற்படாது. ஆனால், நிறுவும் போது (install time), நீங்கள் கேள்விப்படாத ஒரு தொகுப்பின் சார்புநிலை (dependency) தீர்க்கப்படாமல் இருப்பதால் பிழை ஏற்படும். முதலில் CRB-ஐ இயக்கினால், அந்த வகை பிழைகள் நீங்கிவிடும்.
RHEL-ல், CRB என்பது config-manager வழியாக அல்லாமல், உங்கள் சந்தா (subscription) வழியாகவே கிடைக்கிறது. எனவே, அந்தப் படிநிலைக்கு Red Hat-ன் சொந்த EPEL வழிமுறைகளைப் பின்பற்றவும். Fedora-விற்கு இது தேவையில்லை, ஏனெனில் அதன் முதன்மைக் களஞ்சியத்திலேயே EPEL backports-ல் உள்ளவை ஏற்கனவே உள்ளன. RHEL வழங்கும் எந்தவொரு தொகுப்பையும் மாற்றக்கூடாது என்பதே EPEL-ன் கொள்கை. எனவே, இந்த களஞ்சியத்தைச் சேர்ப்பதால் உங்கள் server-ல் ஏற்கனவே நிறுவப்பட்ட எதிலும் மாற்றம் ஏற்படாது.
dnf history undo, apt-ல் இல்லாத வசதி
dnf ஒவ்வொரு பரிவர்த்தனையையும் (transaction) பதிவு செய்கிறது, மேலும் அதன் தலைகீழ் செயல்பாட்டை உருவாக்க முடியும்.
sudo dnf history
sudo dnf history info 42
sudo dnf history undo 42dnf history கட்டளையானது, ஒவ்வொரு பரிவர்த்தனையையும் தொடங்கிய command line-உடன் ஒரு எண்ணிடப்பட்ட பட்டியலாகக் காட்டுகிறது. undo கட்டளையானது அதற்கு நேர்மாறான பரிவர்த்தனையை உருவாக்குகிறது: அந்தப் பரிவர்த்தனையில் நிறுவப்பட்ட தொகுப்புகள் (packages) நீக்கப்படும், மேலும் மேம்படுத்தப்பட்ட தொகுப்புகள் பழைய பதிப்பிற்குத் திரும்பும். dnf-க்கு மாறிய பிறகு apt பயனர்கள் அதிகம் எதிர்பார்க்கும் அம்சம் இதுவாகும்.
இதற்கு சில நடைமுறை வரம்புகள் உள்ளன, அவற்றைச் சார்ந்திருப்பதற்கு முன் தெரிந்துகொள்வது அவசியம். undo கட்டளையானது, இயக்கப்பட்ட repository-ல் இன்னும் இருக்கும் ஒரு தொகுப்புப் பதிப்பை மட்டுமே மீண்டும் நிறுவ முடியும். எனவே, பழைய build mirror-லிருந்து நீக்கப்பட்டால், undo செயல்பாடு not-found பிழையுடன் தோல்வியடையும். இந்த rollback தொகுப்புத் தரவுத்தளத்துடன் (package database) நின்றுவிடும். மேம்படுத்தலின் போது மாற்றியமைக்கப்பட்ட ஒரு config கோப்பு அப்படியே இருக்கும், மேலும் முதல் தொடக்கத்தில் ஒரு service மாற்றியமைத்த database schema-வும் அப்படியே இருக்கும். dnf கோப்புகளை மட்டுமே பழைய நிலைக்குக் கொண்டு வரும். இது உங்கள் தரவை பழைய நிலைக்குக் கொண்டு வராது.
apt-ல் இதற்கு இணையான வசதி இல்லை. /var/log/apt/history.log கட்டளையானது command line உட்பட என்ன நடந்தது என்பதைத் துல்லியமாகப் பதிவு செய்கிறது, ஆனால் log-ஐப் படிப்பது என்பது மாற்றங்களைச் செயல்தவிர்ப்பது (undo) ஆகாது. apt-ல் மீட்புப் பணிகளை நீங்களே செய்ய வேண்டும்: archive-ல் எந்தெந்தப் பதிப்புகள் உள்ளன என்பதைப் பார்க்க apt list -a nginx கட்டளையை இயக்கவும், பின் ஒரு பதிப்பைப் பூட்ட (pin) sudo apt install nginx=<exact version string> கட்டளையைப் பயன்படுத்தவும், அடுத்த மேம்படுத்தலில் உங்கள் திருத்தம் நீக்கப்படாமல் இருக்க sudo apt-mark hold nginx கட்டளையைச் சேர்க்கவும்.
Package group-களுக்கு apt-ல் நேரடி இணையான வசதி இல்லை
dnf மூலம் ஒரு குறிப்பிட்ட தொகுப்பு packages-ஐ ஒரே கட்டளையில் நிறுவ முடியும்.
dnf group list
dnf group info "Development Tools"
sudo dnf group install "Development Tools"பழைய வழிகாட்டிகளில் dnf groupinstall "Development Tools" என்று குறிப்பிடப்பட்டிருக்கும். அந்த alias dnf 4 பதிப்பில் வேலை செய்யும், ஆனால் dnf 5-ல் நீக்கப்பட்டுவிட்டது. எனவே, இரண்டு சொற்களைக் கொண்ட dnf group install என்பதே எல்லா இடங்களிலும் வேலை செய்யும் ஒரே முறையாகும். இதையே பயன்படுத்தவும், வேறு மாற்றுகளைத் தேட வேண்டாம்.
apt-ல் group வசதி கிடையாது. Debian-ல் இதற்கு இணையான அம்சம் metapackage ஆகும். இது ஒரு காலியான package ஆகும், இதன் ஒரே பணி build-essential போன்ற dependencies-ன் பட்டியலை வைத்திருப்பது மட்டுமே. நடைமுறையில் உள்ள வித்தியாசம் என்னவென்றால்: ஒரு metapackage-ஐ நீக்கும்போது, நீங்கள் apt autoremove கட்டளையை இயக்கும் வரை அதன் dependencies கணினியில் அப்படியே இருக்கும். ஆனால், dnf group remove கட்டளையைப் பயன்படுத்தினால், அந்த group-ல் உள்ள packages அனைத்தும் ஒரே நேரத்தில் நீக்கப்படும்.
unattended-upgrades மற்றும் dnf-automatic
இந்த இரண்டு குடும்பங்களும் பயனர் எவரும் உள்நுழையாத நிலையில் புதுப்பிப்புகளை (updates) நிறுவுவதற்கான வசதியை வழங்குகின்றன. இந்த கருவிகள் நோக்கத்தை மட்டுமே பகிர்ந்து கொள்கின்றன, மற்றபடி இவை முற்றிலும் வேறுபட்டவை.
Ubuntu மற்றும் Debian-ல் இதற்கான package unattended-upgrades ஆகும். இது /etc/apt/apt.conf.d/50unattended-upgrades கோப்பில் கட்டமைக்கப்படுகிறது; இதில் எந்தெந்த மூலங்களிலிருந்து (origins) புதுப்பிப்புகளைப் பெறலாம் என்பதை நீங்கள் குறிப்பிட வேண்டும். Ubuntu-வில் unattended upgrades அமைத்தல் என்ற பகுதி அந்த configuration கோப்பு மற்றும் அது தொடர்பான reboot கேள்விகளை விளக்குகிறது.
Rocky Linux, AlmaLinux மற்றும் Fedora-வில் இதற்கான package dnf-automatic ஆகும். நீங்கள் இயக்கும் systemd timer-தான் இதன் செயல்பாட்டைத் தீர்மானிக்கிறது.
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer
systemctl list-timers 'dnf-automatic*'dnf-automatic-install.timer புதுப்பிப்புகளைத் தரவிறக்கம் செய்து நிறுவுகிறது. dnf-automatic-download.timer அவற்றை மட்டும் தரவிறக்கம் செய்து நிறுத்திவிடும், நிறுவும் பணியை நீங்கள் செய்ய வேண்டும். dnf-automatic-notifyonly.timer புதுப்பிப்புகள் குறித்த அறிக்கையை மட்டும் வழங்கும். இந்த ஒவ்வொரு unit-ம் /etc/dnf/automatic.conf கோப்பில் உள்ள apply_updates அமைப்பை மீறிச் செயல்படும், எனவே configuration கோப்பில் உள்ளதை விட நீங்கள் தேர்ந்தெடுக்கும் timer-தான் முக்கியமானது.
பாதுகாப்பு தொடர்பான திருத்தங்களை (security fixes) மட்டும் கட்டுப்படுத்த, /etc/dnf/automatic.conf கோப்பில் upgrade_type = security என்பதை அமைக்கவும். இந்த வடிகட்டி (filter), உங்கள் repositories பாதுகாப்பு தொடர்பான errata-வை வெளியிடுவதைப் பொறுத்தது, எனவே முதலில் dnf updateinfo list security மூலம் அதைச் சரிபார்க்கவும். புதுப்பிப்புகள் நிலுவையில் உள்ள ஒரு கணினியில் இதன் முடிவு காலியாக இருந்தால், metadata இல்லை என்று அர்த்தம்; அத்தகைய சூழலில் security எதையும் நிறுவாது.
Fedora-வில், dnf 5 இந்த unit-ன் பெயரை மாற்றியுள்ளது. அது dnf5-automatic.timer ஆகும், இது அதே /etc/dnf/automatic.conf கோப்பைப் படிக்கிறது.
yum இன்னும் பயன்பாட்டில் உள்ள கட்டளையா?
ஆம், ஆனால் அது தனியாக எதையும் செய்வதில்லை. Rocky Linux, AlmaLinux மற்றும் CentOS Stream ஆகியவற்றில், /usr/bin/yum என்பது dnf-ஐக் குறிக்கும் ஒரு symbolic link ஆகும். உங்களுடையதைச் சரிபார்க்கவும்:
ls -l /usr/bin/yum
dnf --versionபழைய yum syntax இன்னும் பயிற்சிகளில் இடம்பெறுகிறது, ஏனெனில் அதன் பெரும்பாலான கட்டளைகள் அப்படியே வேலை செய்கின்றன. yum install, yum remove மற்றும் yum update ஆகிய அனைத்தும் வேலை செய்யும். ஒரு பழக்கத்தை கைவிடுவது நல்லது: dnf 4 அமைப்புகளில் yum-config-manager அதன் சொந்த binary-ஆக இன்னும் உள்ளது, ஆனால் dnf config-manager என்பதே தற்போதைய ஆவணங்களில் பயன்படுத்தப்படும் சரியான எழுத்துமுறை ஆகும். கணினி dnf 5-க்கு மாறும்போது இதுவே தொடர்ந்து வேலை செய்யும்.
dnf 4 மற்றும் dnf 5: கட்டளையை நகலெடுக்கும் முன் சரிபார்க்கவும்
dnf 5 என்பது ஒரு முழுமையான மறுஎழுத்து (rewrite) ஆகும், இது பல கட்டளைகளின் எழுத்துப்பிழைகளை மாற்றியுள்ளது. Fedora 41 மற்றும் அதற்குப் பிந்தைய பதிப்புகள் இதை dnf ஆக வழங்குகின்றன. Enterprise rebuild-கள் மாறுவதற்கு அதிக காலம் எடுத்துக்கொள்வதால், விநியோகத்தின் (distribution) பெயரை வைத்து மட்டும் யூகிக்க வேண்டாம். உங்கள் server-ல் dnf --version கட்டளையை இயக்கி முதல் வரியைப் படிக்கவும்; அந்த எண்ணே கீழே உள்ளவற்றில் எந்த syntax உங்களுக்குத் தேவை என்பதைத் தீர்மானிக்கும்.
Docker-ன் உதாரணம் இதைத் தெளிவாக விளக்குகிறது, இது ஒவ்வொன்றிற்கும் வெவ்வேறு repository கட்டளையை வெளியிடுகிறது. RHEL மற்றும் அதன் rebuild-களில், dnf 4 உடன்:
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repoFedora-வில், dnf 5 உடன்:
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repoஒரே விற்பனையாளர், ஒரே பணி, ஆனால் வெவ்வேறு சொற்கள். dnf 5 ஆனது config-manager-ஐ subcommand-அடிப்படையிலான கருவியாக மாற்றியுள்ளது, எனவே பழைய --add-repo flag ஏற்றுக்கொள்ளப்படாது; அதற்குப் பதிலாக repository-க்குத் தகுந்தவாறு usage error கிடைக்கும். நீங்கள் சந்திக்கும் மற்றொரு மாற்றம் repository-ஐ enable செய்வது: dnf 4-ல் உள்ள dnf config-manager --set-enabled crb, dnf 5-ல் dnf config-manager setopt crb.enabled=1 ஆக மாறுகிறது.
உண்மையில் முக்கியமான தேர்வு
Package manager-ஐ மட்டும் வைத்துக்கொண்டு ஒரு server distribution-ஐத் தேர்ந்தெடுப்பது தவறான அணுகுமுறை. dnf மற்றும் apt ஆகிய இரண்டும் ஒரே பணியையே செய்கின்றன, அவற்றின் கட்டளைகளைக் கற்றுக்கொள்ள ஒரு மதியப் பொழுது போதுமானது. உங்கள் ஆண்டின் செயல்பாட்டைத் தீர்மானிப்பது, அந்த repository-க்கு பின்னால் உள்ள release model தான். Fedora மிக வேகமாக மேம்படுத்தப்படுகிறது, ஒரு குறிப்பிட்ட release வெளியான பதின்மூன்று மாதங்களுக்குப் பிறகு அதற்கான updates நிறுத்தப்படும். இது ஒரு workstation-க்குச் சரியாக இருக்கலாம், ஆனால் அடிக்கடி rebuild செய்ய விரும்பாத ஒரு server-க்கு இது சிரமமானது. Rocky Linux மற்றும் AlmaLinux ஆகியவை RHEL-ஐப் பின்பற்றுவதால், உங்களுக்கு 10 ஆண்டுகள் ஆதரவு காலம் கிடைக்கிறது மற்றும் package பதிப்புகள் வேண்டுமென்றே மாற்றப்படாமல் நிலையாக இருக்கும். Ubuntu இந்த இரண்டு முறைகளையும் வழங்குகிறது, மேலும் server-ல் Ubuntu LTS மற்றும் interim releases-க்கு இடையிலான வேறுபாடு என்பது apt சூழலுக்குள் எடுக்கப்படும் அதே முடிவாகும்.
ஆகஸ்ட் 2026 நிலவரப்படி, இவை அனைத்தும் சாதாரண VPS images-ஆகவே உள்ளன. உங்களுக்குத் தேவையான ஆதரவு காலத்தைத் தேர்ந்தெடுத்துவிட்டு, மேலே உள்ள 10 கட்டளைகளைக் கற்றுக்கொள்ளுங்கள்.
FAQ
apt update-க்கு இணையான dnf கட்டளை எது?
இதற்கென நீங்கள் தனியாக இயக்க வேண்டிய கட்டளை எதுவும் இல்லை. ஒவ்வொரு பரிவர்த்தனைக்கு முன்பும், தனது cached metadata எவ்வளவு பழையது என்பதை dnf சரிபார்க்கும். அது காலாவதியாகி இருந்தால், புதிய நகலைத் தானாகவே பதிவிறக்கம் செய்யும். எனவே, ஒரு மாதம் நீங்கள் தொடாத server-ல் கூட dnf install தற்போதைய packages-ஐக் காட்டும். sudo dnf makecache என்ற கட்டளை இருந்தாலும், அது பதிவிறக்கத்தை கட்டாயப்படுத்துமே தவிர, அதன் உண்மையான நோக்கம் அந்த தாமதத்தை உங்களுக்கு விருப்பமான நேரத்தில் நிகழ்த்துவது மட்டுமே. "எனக்காக என்ன காத்திருக்கிறது" என்பதை அறிய dnf check-update கட்டளையைப் பயன்படுத்தலாம். இது apt list --upgradable-க்கு இணையாகச் செயல்படும்; updates ஏதேனும் இருந்தால், இது 100 என்ற status-உடன் வெளியேறும்.
Rocky Linux அல்லது Fedora-வில் PPA-க்கு இணையான வசதி உள்ளதா?
இல்லை. Personal package archives என்பது Launchpad சேவையாகும்; Launchpad என்பது Ubuntu-வின் உள்கட்டமைப்பு என்பதால், add-apt-repository-க்கு இணையான அம்சம் இதில் இல்லை. RPM-ல் இதற்கு இணையானது /etc/yum.repos.d/ கோப்பகத்தில் உள்ள ஒரு .repo கோப்பு ஆகும். இதில் பெயர், baseurl மற்றும் gpgkey ஆகியவை இருக்கும். விற்பனையாளர்கள் அந்த கோப்பை உங்களுக்கு வழங்குகிறார்கள். dnf 4-ல் sudo dnf config-manager --add-repo <url> அல்லது dnf 5-ல் sudo dnf config-manager addrepo --from-repofile <url> மூலம் அதை நீங்கள் பதிவிறக்கம் செய்து பொருத்தலாம். பொதுவாக கூடுதல் மென்பொருள்களுக்கு EPEL-ஐப் பயன்படுத்தலாம். இதை sudo dnf config-manager --set-enabled crb மற்றும் அதைத் தொடர்ந்து sudo dnf install epel-release மூலம் செயல்படுத்தலாம்.
எனது server-ஐப் பாதித்த dnf upgrade-ஐ என்னால் ரத்து செய்ய முடியுமா?
ஆம், சில கட்டுப்பாடுகளுடன் முடியும். பரிவர்த்தனை எண்ணைக் கண்டறிய sudo dnf history கட்டளையை இயக்கவும். அது என்ன மாற்றங்களைச் செய்தது என்பதைப் பார்க்க sudo dnf history info <id>-ஐப் பயன்படுத்தவும். பிறகு sudo dnf history undo <id> மூலம் ரத்து செய்யவும். பழைய package version எந்த enabled repository-லும் இல்லை என்றால், இந்த ரத்து செய்யும் முயற்சி தோல்வியடையும்; ஏனெனில் மீண்டும் நிறுவுவதற்கு dnf-யிடம் கோப்புகள் இருக்காது. இது package மாற்றங்களை மட்டுமே மாற்றியமைக்கும். upgrade-ஆல் மாற்றப்பட்ட configuration கோப்புகள் அல்லது service-ஆல் மாற்றப்பட்ட database-கள் அப்படியே இருக்கும். apt-ல் இதற்கு இணையான கட்டளை எதுவும் இல்லை; /var/log/apt/history.log-ல் உள்ள பதிவுகள் மட்டுமே இருக்கும்.
Rocky Linux மற்றும் AlmaLinux-ல் yum இன்னும் வேலை செய்கிறதா?
/usr/bin/yum என்பது dnf-க்கான symbolic link என்பதால் இது வேலை செய்கிறது. உங்கள் கணினியில் ls -l /usr/bin/yum மூலம் இதை உறுதிப்படுத்தலாம். yum install httpd என்று தட்டச்சு செய்தால் அது dnf-ஐயே இயக்கும், எனவே பழைய tutorials பெரும்பாலும் இப்போதும் வேலை செய்யும். புதிய scripts மற்றும் ஆவணங்களை எழுதும்போது dnf-ஐப் பயன்படுத்தவும், ஏனெனில் yum என்பது இணக்கத்தன்மைக்காக (compatibility) மட்டுமே உள்ளது. பழைய yum-config-manager binary-க்கு பதிலாக dnf config-manager-ஐப் பயன்படுத்த முன்னுரிமை அளிக்கவும்.
dnf remove ஏன் இவ்வளவு அதிகமான packages-ஐ நீக்க விரும்புகிறது?
ஏனெனில், அதே பரிவர்த்தனையின் ஒரு பகுதியாக, வேறு எதற்கும் தேவைப்படாத dependencies-ஐ dnf நீக்கிவிடும். ஆனால் apt remove அவற்றை அப்படியே விட்டுவிடும், நீங்கள் தனியாக apt autoremove இயக்கும் வரை அவை நீக்கப்படாது. எனவே, Ubuntu-வில் சிறியதாகத் தெரியும் ஒரு நீக்கம், Rocky Linux-ல் நீண்ட பட்டியலாகத் தெரியலாம். அந்தப் பட்டியல் பொதுவாகச் சரியாகவே இருக்கும், இருப்பினும் உறுதிப்படுத்தும் முன் அதைப் படித்துப் பார்க்கவும். அதில் உள்ள ஒரு package உங்களுக்குத் தேவைப்பட்டால், அதை முதலில் தனியாக install செய்யவும்; அப்போதுதான் அது உங்களுக்குத் தேவை என்று dnf பதிவு செய்துகொள்ளும்.