apt to dnf: Rocky Linux மற்றும் Fedora கட்டளைகள்
Debian-ன் apt கட்டளைகளுக்கு இணையான dnf கட்டளைகளை அறிந்துகொள்ளுங்கள். Rocky Linux, AlmaLinux மற்றும் Fedora-வில் 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 என்று பதிலளிப்பதற்கு முன், dnf காண்பிக்கும் transaction summary-ஐ கவனமாகப் படிக்கவும், குறிப்பாக நீக்குதல் (removals) செயல்பாடுகளின் போது கூடுதல் கவனம் தேவை.
எந்தெந்த 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-ஐப் பெறுவீர்கள். இந்த பிளவு ஏன் ஒரே மாதிரியான அமைப்பிற்கு நான்கு பெயர்களைக் கொண்டுள்ளது என்பது, நீங்கள் எதைத் தேர்வு செய்வதற்கு முன்பும் தெரிந்துகொள்ள வேண்டிய ஒரு வரலாறு. Red Hat Linux எவ்வாறு Fedora, RHEL, CentOS, Rocky மற்றும் AlmaLinux ஆக மாறியது என்பது ஒவ்வொன்றின் தோற்றத்தையும் விளக்குகிறது.
தொகுப்பு வடிவம் (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 பக்கத்தில் apt update கட்டாயமானது, ஏனெனில் apt வட்டில் உள்ள metadata-ஐயே பயன்படுத்தும், மேலும் மாதங்களுக்கு முன்பே archive-லிருந்து நீக்கப்பட்ட ஒரு பழைய version-ஐயும் அது மகிழ்ச்சியுடன் நிறுவும். dnf ஒவ்வொரு பரிவர்த்தனைக்கு முன்பும் தனது cache-ன் வயதைச் சரிபார்த்து, தானாகவே புதிய metadata-ஐப் பதிவிறக்கும், எனவே sudo dnf makecache என்பது அடுத்த நிறுவலின் போது நடப்பதற்குப் பதிலாக இப்போதே பதிவிறக்கத்தை கட்டாயப்படுத்த மட்டுமே பயன்படுகிறது.
apt முழு system upgrade-ஐ இரண்டாகப் பிரிக்கிறது, dnf அவ்வாறு செய்வதில்லை. apt upgrade எந்தவொரு installed package-ஐயும் நீக்க மறுத்துவிடும், எனவே ஒரு update-க்கு ஏதேனும் ஒரு package நீக்கப்பட வேண்டும் என்றால் அது பாதியிலேயே நின்றுவிடும். apt full-upgrade மட்டுமே நீக்க அனுமதிக்கும் பதிப்பாகும். dnf-ல் இத்தகைய கட்டுப்பாடு இல்லை, அதாவது dnf upgrade என்பது apt upgrade-க்கு அல்ல, apt full-upgrade-க்கு இணையானது. dnf update என்பது அதே கட்டளைக்கான பழைய alias ஆகும், இது இப்போதும் வேலை செய்யும்.
நீங்கள் இதை script-ல் பயன்படுத்தினால் ஒரு விவரம் முக்கியமானது: dnf check-update updates காத்திருக்கும்போது status 100-ஐயும், இல்லையெனில் 0-வையும் வெளியிடும். apt list --upgradable எப்படியிருந்தாலும் 0-வையே வெளியிடும், எனவே scripts அதன் வெளியீட்டைப் பகுப்பாய்வு (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-ஐச் சுத்தம் செய்தல், ஒரு version-ஐத் தடுத்து வைத்தல் (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-ல் apt-mark hold-க்கு கூடுதல் எதுவும் தேவையில்லை, ஏனெனில் hold என்பது ஒரு plugin-ஐ விட dpkg-ன் ஒரு நிலையாகும்.
மேப்பிங் எங்கு தோல்வியடைகிறது: ஒரு களஞ்சியத்தைச் சேர்த்தல்
Ubuntu நிர்வாகிகளை இல்லாத ஒரு கட்டளையைத் தேட வைக்கும் பகுதி இது. add-apt-repository என்பது dnf-ல் இல்லை, மேலும் தனிப்பட்ட தொகுப்பு காப்பகங்களும் (PPAs) இதில் இல்லை. PPA என்பது Launchpad மூலம் இயக்கப்படும் ஒரு சேவையாகும், மேலும் Launchpad என்பது Ubuntu உள்கட்டமைப்பாகும். RPM உலகில் எங்கும் PPA-வை ஹோஸ்ட் செய்வதில்லை.
இதற்குப் பதிலாக, dnf-ல் ஒவ்வொரு களஞ்சியத்திற்கும் /etc/yum.repos.d/-க்குள் ஒரு எளிய உரை கோப்பு (plain text file) உள்ளது, அது .repo-ல் முடிகிறது.
[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) ஆகும். dnf உங்கள் மேஜர் ரிலீஸ் எண் மற்றும் CPU கட்டமைப்பை இயக்க நேரத்தில் (runtime) நிரப்புகிறது, எனவே ஒரே கோப்பு பதிப்பு 9 மற்றும் பதிப்பு 10-லும், x86_64 மற்றும் aarch64-லும் வேலை செய்யும்.
பெரும்பாலான விற்பனையாளர்கள் அந்த கோப்பை வெளியிட்டு, அதை பதிவிறக்கம் செய்யுமாறு உங்களுக்கு அறிவுறுத்துவார்கள். RHEL மற்றும் அதன் மறுவடிவமைப்புகளுக்கான 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-ன் ஒரு பகுதி அல்ல. அதைத் தவிர்த்தால், இரண்டாவது வரி No such command: config-manager பிழையுடன் தோல்வியடையும். அதே .repo கோப்பை curl மூலம் /etc/yum.repos.d/-க்குள் கைமுறையாகப் பதிவிறக்குவதைத் தடுப்பதற்கு எதுவுமில்லை, அதன் விளைவு ஒன்றுதான். VPS-ல் Docker-ஐ நிறுவுதல் என்பது Debian-ல் இதே பணியைச் செய்வதைப் பற்றி விளக்குகிறது, அங்கு அதற்கு இணையான படி ஒரு சோர்ஸ் லிஸ்ட் மற்றும் கையொப்பமிடும் விசையை (signing key) இரண்டு வெவ்வேறு கோப்பகங்களில் எழுதுகிறது.
ஒரு களஞ்சியம் சரியாகச் செயல்படாதபோது எங்கு பார்க்க வேண்டும் என்பதை இந்த அமைப்பு வேறுபாடு தீர்மானிக்கிறது. apt அதன் வரையறைகளை /etc/apt/sources.list மற்றும் /etc/apt/sources.list.d/-ல் வைத்திருக்கிறது, கையொப்பமிடும் விசைகள் /etc/apt/keyrings/-ன் கீழ் தனித்தனியாக வைக்கப்படுகின்றன. dnf அனைத்தையும் /etc/yum.repos.d/-ல் வைத்திருக்கிறது, மேலும் விசை என்பது .repo கோப்பிற்குள் இருக்கும் ஒரு URL ஆகும், எனவே படிக்க ஒரு கோப்பும் நீக்க ஒரு கோப்பும் மட்டுமே உள்ளது. புதிய apt, deb822 வடிவத்துடன் இதே நிலையை நோக்கி நகர்ந்துள்ளது, அதாவது ஒரு களஞ்சியத்திற்கு ஒரு .sources கோப்பு. நீங்கள் Ubuntu-வில் deb822 நகல் சோர்ஸ் பிழையை சந்தித்திருந்தால், இந்தப் சிக்கலின் 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-ஐ மட்டும் செயல்படுத்தினால் அந்த நேரத்தில் பிழை ஏற்படாது. இது பின்னர், நிறுவும் நேரத்தில், நீங்கள் கேள்விப்படாத ஒரு தொகுப்பின் சார்புநிலைகள் (dependencies) தீர்க்கப்படாதபோது தோல்வியடையும். முதலில் 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) நீக்கப்படும், மேலும் மேம்படுத்தப்பட்ட தொகுப்புகள் பழைய பதிப்பிற்குத் திரும்பும். இது apt பயனர்கள் மாறிய பிறகு அதிகம் எதிர்பார்க்கும் வசதியாகும்.
இதற்கு சில வரம்புகள் உள்ளன, அவற்றை நம்புவதற்கு முன்பு தெரிந்துகொள்வது அவசியம். undo ஒரு தொகுப்பின் பதிப்பை, அது இயக்கப்பட்ட களஞ்சியத்தில் (enabled repository) இருந்தால் மட்டுமே மீண்டும் நிறுவ முடியும். எனவே, பழைய build கண்ணாடியிலிருந்து (mirror) நீக்கப்பட்டால், undo செயல்பாடு not-found பிழையுடன் தோல்வியடையும். இந்த rollback தொகுப்பு தரவுத்தளத்துடன் (package database) நின்றுவிடும். மேம்படுத்தலின் போது மாற்றியமைக்கப்பட்ட ஒரு கட்டமைப்பு கோப்பு (config file) மாற்றப்பட்ட நிலையிலேயே இருக்கும், மேலும் ஒரு சேவை முதல்முறை தொடங்கும் போது இடம்பெயர்ந்த (migrated) தரவுத்தள schema அப்படியே இருக்கும். dnf கோப்புகளை மட்டுமே பழைய நிலைக்குக் கொண்டு வரும். இது உங்கள் தரவை பழைய நிலைக்குக் கொண்டு வராது.
apt-ல் இதற்கு இணையான வசதி இல்லை. /var/log/apt/history.log என்ன நடந்தது என்பதை, கட்டளை வரி உட்பட துல்லியமாகப் பதிவு செய்கிறது, ஆனால் பதிவை வாசிப்பது என்பது அதைச் செயல்தவிர்ப்பது (undo) ஆகாது. apt-ல் மீட்பு என்பது கைமுறையானது: காப்பகத்தில் (archive) எந்தப் பதிப்புகள் உள்ளன என்பதைப் பார்க்க apt list -a nginx கட்டளையை இயக்கவும், பின்னர் ஒன்றைப் பொருத்த (pin) sudo apt install nginx=<exact version string> கட்டளையைப் பயன்படுத்தவும், மேலும் அடுத்த மேம்படுத்தல் உங்கள் திருத்தத்தை மாற்றாமல் இருக்க sudo apt-mark hold nginx-ஐச் சேர்க்கவும்.
Package groups-க்கு 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-ல் groups என்ற வசதி இல்லை. Debian-ல் இதற்கு இணையான அம்சம் metapackage ஆகும். இது ஒரு காலியான பொதி, இதன் ஒரே பணி பிற பொதிகளை dependencies-ஆகக் கொண்டிருப்பது மட்டுமே (உதாரணமாக: build-essential). நடைமுறையில் உள்ள வித்தியாசம் என்னவென்றால்: ஒரு metapackage-ஐ நீக்கும்போது, அதன் dependencies நீக்கப்படாது; நீங்கள் apt autoremove கட்டளையை இயக்கும் வரை அவை கணினியிலேயே இருக்கும். ஆனால், dnf group remove கட்டளையைப் பயன்படுத்தினால், அந்த group-ல் உள்ள அனைத்துப் பொதிகளும் ஒரே நேரத்தில் நீக்கப்படும்.
unattended-upgrades மற்றும் dnf-automatic
இந்த இரண்டு குடும்பங்களும் யாரும் உள்நுழையாத நிலையில் புதுப்பிப்புகளை (updates) நிறுவுவதற்கான வழிகளை வழங்குகின்றன. இந்த கருவிகள் நோக்கத்தைத் தவிர வேறு எதையும் பகிர்ந்து கொள்வதில்லை.
Ubuntu மற்றும் Debian-ல் இதற்கான தொகுப்பு unattended-upgrades ஆகும். இது /etc/apt/apt.conf.d/50unattended-upgrades கோப்பில் கட்டமைக்கப்படுகிறது; இதில் எந்தெந்த மூலங்களிலிருந்து (origins) புதுப்பிப்புகளைப் பெறலாம் என்பதை நீங்கள் பட்டியலிட வேண்டும். Ubuntu-வில் unattended upgrades அமைத்தல் என்ற பகுதி அந்த கட்டமைப்பு கோப்பு மற்றும் அது தொடர்பான reboot கேள்விகளை விளக்குகிறது.
Rocky Linux, AlmaLinux மற்றும் Fedora-வில் இதற்கான தொகுப்பு 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 அமைப்பை மீறுகிறது (override), எனவே கட்டமைப்பு கோப்பில் என்ன இருந்தாலும், நீங்கள் தேர்ந்தெடுக்கும் timer-தான் முக்கியமானது. ஒரு புதுப்பிப்பை நிறுவுவது, பழைய குறியீட்டில் இயங்கிக்கொண்டிருக்கும் எதையும் மறுதொடக்கம் (restart) செய்யாது. எனவே, சர்வர் முழுமையாகப் புதுப்பிக்கப்பட்டதாகக் கருதுவதற்கு முன், எந்தெந்த புதுப்பிப்புகளுக்கு reboot தேவை மற்றும் எவற்றிற்கு service restart மட்டும் போதும் என்பதைச் சரிபார்ப்பது அவசியம்.
பாதுகாப்புத் திருத்தங்களுக்கு (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 கட்டளைகள் இன்னும் பல பயிற்சிகளில் இடம்பெறுகின்றன, ஏனெனில் அவற்றில் பெரும்பாலானவை அப்படியே வேலை செய்கின்றன. yum install, yum remove மற்றும் yum update ஆகிய அனைத்தும் வேலை செய்யும். ஒரு பழக்கத்தை மட்டும் கைவிடுவது நல்லது: dnf 4 அமைப்புகளில் yum-config-manager ஒரு தனி binary-ஆக இன்னும் உள்ளது, ஆனால் தற்போதைய ஆவணங்கள் dnf config-manager என்ற எழுத்துப்பிழையையே பயன்படுத்துகின்றன. மேலும், கணினி dnf 5-க்கு மாறும்போது இதுவே தொடர்ந்து வேலை செய்யும்.
dnf 4 மற்றும் dnf 5: கட்டளையை நகலெடுக்கும் முன் சரிபார்க்கவும்
dnf 5 என்பது முழுமையாக மாற்றியமைக்கப்பட்ட ஒரு பதிப்பாகும், இது பல கட்டளைகளின் எழுத்துப்பிழைகளை மாற்றியுள்ளது. Fedora 41 மற்றும் அதற்குப் பிந்தைய பதிப்புகள் இதை dnf ஆக வழங்குகின்றன. Enterprise மறுபதிப்புகள் (rebuilds) மாறுவதற்கு அதிக காலம் எடுத்துக்கொள்வதால், விநியோகத்தின் பெயரை வைத்து மட்டும் யூகிக்க வேண்டாம். உங்கள் server-ல் dnf --version கட்டளையை இயக்கி, அதன் முதல் வரியைப் படியுங்கள்; அந்த எண்ணே கீழே உள்ள எந்த syntax உங்களுக்குத் தேவை என்பதைத் தீர்மானிக்கும்.
இதற்கான தெளிவான உதாரணத்தை Docker வழங்குகிறது, இது ஒவ்வொன்றிற்கும் வெவ்வேறு repository கட்டளையை வெளியிடுகிறது. RHEL மற்றும் அதன் மறுபதிப்புகளில், 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-ஐ இயக்குவது: 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 வெளியான பிறகு சுமார் 13 மாதங்களில் அதற்கான updates நிறுத்தப்படும். இது ஒரு workstation-க்குச் சரியாக இருக்கலாம், ஆனால் அடிக்கடி rebuild செய்ய விரும்பாத server-க்கு இது சிரமமானது. Rocky Linux மற்றும் AlmaLinux ஆகியவை RHEL-ஐப் பின்பற்றுவதால், உங்களுக்கு 10 ஆண்டுகால support கிடைப்பதோடு, package-களின் பதிப்புகளும் திட்டமிட்டு மாற்றப்படாமல் நிலையாக இருக்கும். Ubuntu இந்த இரண்டு முறைகளையும் வழங்குகிறது. server-ல் Ubuntu LTS மற்றும் interim releases-க்கு இடையிலான வேறுபாடு என்பது apt சூழலுக்குள் எடுக்கப்படும் அதே முடிவாகும்.
ஆகஸ்ட் 2026 நிலவரப்படி, இவை அனைத்தும் சாதாரண VPS images-தான். உங்களுக்குத் தேவையான support காலத்தைத் தேர்ந்தெடுத்துவிட்டு, மேலே உள்ள 10 கட்டளைகளைக் கற்றுக்கொள்ளுங்கள்.
FAQ
apt update-க்கு இணையான dnf கட்டளை எது?
இதற்கென நீங்கள் தனியாக எந்தக் கட்டளையையும் இயக்க வேண்டியதில்லை. ஒவ்வொரு பரிவர்த்தனைக்கு முன்பும், தனது cached metadata எவ்வளவு பழையது என்பதை dnf சரிபார்க்கும். அது காலாவதியாகி இருந்தால், புதிய நகலைப் பதிவிறக்கம் செய்யும். எனவே, ஒரு மாதம் நீங்கள் தொடாத server-ல் கூட dnf install தற்போதைய தொகுப்புகளைக் காட்டும். sudo dnf makecache என்ற கட்டளை இருந்தாலும், அது பதிவிறக்கத்தை கட்டாயப்படுத்துமே தவிர, அதன் உண்மையான நோக்கம் பதிவிறக்க தாமதத்தை உங்களுக்குத் தேவையான நேரத்திற்கு மாற்றியமைப்பதே ஆகும். "எனக்காக என்ன காத்திருக்கிறது" என்ற கேள்விக்கு dnf check-update விடையளிக்கும். இது apt list --upgradable-க்கு இணையானது மற்றும் மேம்படுத்தல்கள் (updates) இருக்கும்போது 100 என்ற status-உடன் வெளியேறும்.
Rocky Linux அல்லது Fedora-வில் PPA-க்கு இணையான வசதி உள்ளதா?
இல்லை. Personal package archives என்பது 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-லும் இல்லை என்றால், இந்த undo தோல்வியடையும்; ஏனெனில் மீண்டும் நிறுவுவதற்கு dnf-யிடம் கோப்புகள் இருக்காது. இது தொகுப்பு மாற்றங்களை மட்டுமே மாற்றியமைக்கும். மேம்படுத்தலால் மாற்றப்பட்ட 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-ஐயே இயக்கும், எனவே பழைய பயிற்சிகள் பெரும்பாலும் இப்போதும் செயல்படும். புதிய scripts மற்றும் ஆவணங்களை dnf கொண்டு எழுதுங்கள், ஏனெனில் yum என்பது இணக்கத்தன்மைக்காக (compatibility) மட்டுமே உள்ளது. பழைய yum-config-manager binary-க்கு பதிலாக dnf config-manager-ஐப் பயன்படுத்த முன்னுரிமை கொடுங்கள்.
dnf remove ஏன் இவ்வளவு அதிகமான தொகுப்புகளை நீக்க விரும்புகிறது?
ஏனெனில், ஒரே பரிவர்த்தனையின் ஒரு பகுதியாக, வேறு எதற்கும் தேவைப்படாத dependencies-ஐ dnf நீக்கிவிடும். ஆனால் apt remove அவற்றை அப்படியே விட்டுவிடும், நீங்கள் தனியாக apt autoremove-ஐ இயக்கும் வரை அவை நீக்கப்படாது. எனவே, Ubuntu-வில் சிறியதாகத் தோன்றும் ஒரு நீக்கம், Rocky Linux-ல் நீண்ட பட்டியலாகத் தெரியலாம். இந்தப் பட்டியல் பொதுவாகச் சரியாகவே இருக்கும், இருப்பினும் உறுதிப்படுத்தும் முன் அதைப் படியுங்கள். அதில் உள்ள ஒரு தொகுப்பு உங்களுக்குத் தேவைப்பட்டால், அதை முதலில் நேரடியாக நிறுவிவிடுங்கள்; அப்போதுதான் அது உங்களுக்குத் தேவை என dnf குறித்துக்கொள்ளும்.