apt కమాండ్లకు సమానమైన dnf కమాండ్లు ఏమిటి?
Rocky Linux, AlmaLinux మరియు Fedoraలో aptకు బదులుగా dnf కమాండ్లను ఎలా వాడాలో తెలుసుకోండి. ప్యాకేజీ మేనేజ్మెంట్, రిపోజిటరీ యాడ్ చేయడం మరియు రోల్బ్యాక్ వంటి ముఖ్యమైన తేడాలను ఇక్కడ
క్లుప్త సమాధానం
apt నుంచి dnf కి మారడం అనేది ప్రధానంగా పదజాల మార్పు మాత్రమే. apt install nginx అనేది dnf install nginx గా మారుతుంది. apt remove nginx అనేది dnf remove nginx గా మారుతుంది. apt update కి నేరుగా సమానమైన కమాండ్ లేదు, ఎందుకంటే cached కాపీ పాతబడినప్పుడు dnf తనంతట తానుగా repository మెటాడేటాను refresh చేసుకుంటుంది. ఈ మార్పులో సులభమైన సగం ఒక స్క్రీన్ పరిధిలో ఉంటుంది. ఉపయోగకరమైన సగం భాగం మాత్రం అసలు పోలిక లేని నాలుగు కార్యకలాపాలకు సంబంధించినది: repository ని జోడించడం, transaction ను వెనక్కి తీసుకోవడం (undo), package group ని ఇన్స్టాల్ చేయడం మరియు unattended updates ను రన్ చేయడం.
కింద ఉన్న ప్రతి కమాండ్ మీరు మీ సొంత సర్వర్లో రన్ చేయడానికి ఉద్దేశించినది. మీరు y అని సమాధానం ఇచ్చే ముందు, ముఖ్యంగా ప్యాకేజీలను తొలగించేటప్పుడు, dnf చూపించే transaction సారాంశాన్ని చదవండి.
ఏ డిస్ట్రోలు dnf ఉపయోగిస్తాయి, ఏవి apt ఉపయోగిస్తాయి
Fedora, Red Hat Enterprise Linux (RHEL), మరియు RHEL యొక్క పునర్నిర్మాణాలైన Rocky Linux, AlmaLinux మరియు CentOS Stream లలో dnf ప్యాకేజీ మేనేజర్గా ఉంటుంది. Debian మరియు Debian ఆధారిత అన్ని డిస్ట్రోలలో apt ప్యాకేజీ మేనేజర్గా ఉంటుంది; VPS విషయంలో ఇది దాదాపు ఎల్లప్పుడూ Ubuntu నే సూచిస్తుంది. దీనికి మూడవ సమాధానం లేదు. మీ ప్రొవైడర్ అందించే ఇమేజ్ జాబితాలో Rocky Linux లేదా AlmaLinux ఉంటే, మీరు dnf ఉపయోగిస్తున్నారని అర్థం. ఒకవేళ Ubuntu ఉంటే, మీరు apt ఉపయోగిస్తున్నారని అర్థం.
ప్యాకేజీ ఫార్మాట్ ఆ సాధనాన్ని బట్టి ఉంటుంది. dnf అనేది .rpm ఫైళ్లను ఇన్స్టాల్ చేస్తుంది మరియు దాని డేటాబేస్ rpm లో ఉంటుంది. apt అనేది .deb ఫైళ్లను ఇన్స్టాల్ చేస్తుంది మరియు దాని డేటాబేస్ dpkg లో ఉంటుంది. అందుకే చాలా వెండర్ల ఇన్స్టాలేషన్ పేజీలలో ప్రతి కుటుంబానికి ఒక ట్యాబ్ ఉంటుంది, మరియు ప్రాజెక్ట్ యొక్క రిలీజ్ పేజీ నుండి డౌన్లోడ్ చేసిన .deb ఫైల్ Rocky Linux పై పనికిరాదు.
మీరు ఏ కుటుంబానికి చెందిన డిస్ట్రోను ఎంచుకున్నా, మొదటిసారి లాగిన్ అయినప్పుడు చేయాల్సిన పని ఒకటే. కొత్త VPSలో మొదటి పది నిమిషాలు అనే గైడ్ రెండింటికీ వర్తిస్తుంది. కేవలం ఇన్స్టాలేషన్ కమాండ్ మాత్రమే మారుతుంది.
ప్రతి apt కమాండ్ మరియు దాని dnf సమానార్థకం
ఇన్స్టాల్ చేయడం, తొలగించడం, వెతకడం మరియు చూపడం. ఇవి రెండు వైపులా దాదాపు ఒకే పదాలను ఉపయోగిస్తాయి.
# 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 ఇతర దేనికీ అవసరం లేని డిపెండెన్సీలను కూడా తొలగిస్తుంది, అయితే apt remove వాటిని తర్వాత apt autoremove కోసం ఇన్స్టాల్ చేయబడినట్లుగానే ఉంచుతుంది. కాబట్టి Rocky Linux లో ఒక చిన్న యుటిలిటీని తొలగించేటప్పుడు, అది డజను లైబ్రరీలను కూడా తొలగించమని అడగవచ్చు. నిర్ధారించే ముందు ఆ జాబితాను చదవండి.
మెటాడేటాను రిఫ్రెష్ చేయడం, ఏవి వేచి ఉన్నాయో తనిఖీ చేయడం మరియు అప్గ్రేడ్ చేయడం.
# 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 డిస్క్లో ఉన్న మెటాడేటాను ఉపయోగిస్తుంది మరియు నెలల క్రితమే ఆర్కైవ్ నుండి తొలగించబడిన వెర్షన్ను కూడా సంతోషంగా ఇన్స్టాల్ చేస్తుంది. dnf ప్రతి లావాదేవీకి ముందు తన కాష్ వయస్సును తనిఖీ చేస్తుంది మరియు స్వయంగా తాజా మెటాడేటాను డౌన్లోడ్ చేస్తుంది, కాబట్టి sudo dnf makecache అనేది మీ తదుపరి ఇన్స్టాలేషన్ సమయంలో కాకుండా ఇప్పుడే డౌన్లోడ్ చేయమని బలవంతం చేయడానికి మాత్రమే.
apt మొత్తం సిస్టమ్ అప్గ్రేడ్ను రెండుగా విభజిస్తుంది, dnf అలా చేయదు. apt upgrade ఏ ఇన్స్టాల్ చేయబడిన ప్యాకేజీని తొలగించడానికి నిరాకరిస్తుంది, కాబట్టి ఏదైనా అప్డేట్కు ప్యాకేజీ తొలగింపు అవసరమైనప్పుడు అది ఆగిపోతుంది. apt full-upgrade అనేది తొలగించడానికి అనుమతించబడిన వెర్షన్. dnf కు అటువంటి పరిమితి లేదు, అంటే dnf upgrade అనేది apt upgrade కి కాకుండా apt full-upgrade కి సమానం. dnf update అనేది అదే కమాండ్ కోసం పాత మారుపేరు మరియు ఇప్పటికీ పనిచేస్తుంది.
మీరు దీనిని స్క్రిప్ట్ చేస్తున్నట్లయితే ఒక వివరం ముఖ్యం: అప్డేట్లు వేచి ఉన్నప్పుడు dnf check-update ఎగ్జిట్ స్టేటస్ 100ని ఇస్తుంది, లేనప్పుడు 0ని ఇస్తుంది. apt list --upgradable రెండింటికీ 0నే ఇస్తుంది, కాబట్టి స్క్రిప్ట్లు దాని అవుట్పుట్ను పార్స్ చేయాల్సి ఉంటుంది.
ఏవి ఇన్స్టాల్ చేయబడ్డాయో జాబితా చేయడం మరియు ఒక ఫైల్ ఏ ప్యాకేజీకి చెందినదో కనుగొనడం.
# 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 ఇప్పటికే ఇన్స్టాల్ చేయబడిన ప్యాకేజీలను మాత్రమే శోధిస్తాయి, కాబట్టి అవి "దీనిని ఇక్కడ ఉంచింది ఏది" అనే ప్రశ్నకు సమాధానమిస్తాయి. apt-file search మరియు dnf provides రిపోజిటరీలను శోధిస్తాయి, కాబట్టి అవి "ఈ ఫైల్ పొందడానికి నేను దేనిని ఇన్స్టాల్ చేయాలి" అనే ప్రశ్నకు సమాధానమిస్తాయి. apt-file అనేది Ubuntu లో ఒక ప్రత్యేక ప్యాకేజీ మరియు మొదటిసారి రన్ చేయడానికి ముందు sudo apt-file update అవసరం. dnf provides కి అదనంగా ఏమీ అవసరం లేదు, అయితే మొదటిసారి రన్ చేసినప్పుడు dnf రిపోజిటరీ ఫైల్ జాబితాలను డౌన్లోడ్ చేయాల్సి ఉంటుంది కాబట్టి నెమ్మదిగా ఉండవచ్చు.
మీరు ఇంకా ఇన్స్టాల్ చేయని ప్యాకేజీలోని ఫైళ్లను జాబితా చేయడానికి, dnf repoquery -l nginx ఉపయోగించండి. apt వైపు అది apt-file list nginx.
ఆటోరిమూవ్, కాష్ను క్లీన్ చేయడం, వెర్షన్ను హోల్డ్ చేయడం.
# 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 కోసం అదనంగా ఏమీ అవసరం లేదు, ఎందుకంటే హోల్డ్ అనేది ప్లగిన్ కంటే dpkg స్థితికి సంబంధించినది.
మ్యాపింగ్ ఎక్కడ విఫలమవుతుంది: రిపోజిటరీని జోడించడం
Ubuntu అడ్మిన్లు లేని కమాండ్ కోసం వెతికేలా చేసే భాగం ఇది. dnf లో add-apt-repository ఉండదు, అలాగే personal package archives (PPAs) కూడా ఉండవు. PPA అనేది Launchpad ద్వారా నడిచే ఒక సేవ, మరియు Launchpad అనేది Ubuntu మౌలిక సదుపాయం. RPM ప్రపంచంలో దేనికీ అటువంటి హోస్టింగ్ లేదు.
దీనికి బదులుగా, dnf లో ప్రతి రిపోజిటరీకి /etc/yum.repos.d/ లో ఒక plain text ఫైల్ ఉంటుంది, అది .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 వేరియబుల్స్. dnf రన్టైమ్లో మీ మేజర్ రిలీజ్ నంబర్ మరియు CPU ఆర్కిటెక్చర్ను నింపుతుంది, కాబట్టి ఒకే ఫైల్ వెర్షన్ 9 మరియు వెర్షన్ 10 లలో, అలాగే x86_64 మరియు aarch64 లలో పనిచేస్తుంది.
చాలా మంది వెండర్లు ఆ ఫైల్ను ప్రచురించి, దానిని డౌన్లోడ్ చేసుకోమని చెబుతారు. RHEL మరియు దాని rebuilds కోసం 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 వైపు ఎలా చేయాలో వివరిస్తుంది, అక్కడ సమానమైన దశలో ఒక సోర్స్ లిస్ట్ మరియు సైనింగ్ కీని రెండు వేర్వేరు డైరెక్టరీలలో రాస్తారు.
రిపోజిటరీ సరిగ్గా పనిచేయనప్పుడు ఎక్కడ వెతకాలో ఈ లేఅవుట్ వ్యత్యాసం నిర్ణయిస్తుంది. 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 అనేది చాలా గైడ్లు ప్రామాణికంగా భావించే ఆర్కైవ్
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, ఇది డిస్ట్రిబ్యూషన్తో పాటు వచ్చే లైబ్రరీల రిపోజిటరీ, కానీ ఇది డిఫాల్ట్గా ఎనేబుల్ చేయబడదు. చాలా EPEL ప్యాకేజీలు దీనిలోని ఏదో ఒక దానిపై ఆధారపడి ఉంటాయి, కాబట్టి CRB లేకుండా EPELని ఎనేబుల్ చేయడం ఆ సమయంలో విఫలం కాదు. ఇది తర్వాత, ఇన్స్టాలేషన్ సమయంలో, మీరు ఎప్పుడూ వినని ప్యాకేజీపై అపరిష్కృత డిపెండెన్సీలతో విఫలమవుతుంది. ముందుగా CRBని ఎనేబుల్ చేయండి, అప్పుడు ఆ తరహా లోపాలు తొలగిపోతాయి.
RHEL లో, CRB అనేది config-manager ద్వారా కాకుండా మీ సబ్స్క్రిప్షన్ ద్వారా వస్తుంది, కాబట్టి ఆ దశ కోసం Red Hat యొక్క స్వంత EPEL సూచనలను అనుసరించండి. Fedoraకు దీని అవసరం లేదు, ఎందుకంటే దాని ప్రధాన రిపోజిటరీలోనే EPEL బ్యాక్పోర్ట్ చేసే ప్యాకేజీలు ఇప్పటికే ఉంటాయి. RHEL అందించే ప్యాకేజీని ఎప్పుడూ భర్తీ చేయకూడదనేది EPEL విధానం, కాబట్టి ఈ రిపోజిటరీని జోడించడం వల్ల మీ సర్వర్లో ఇప్పటికే ఇన్స్టాల్ చేయబడిన వాటిలో ఎటువంటి మార్పు ఉండదు.
dnf history undo, apt చేయలేని పని
dnf ప్రతి లావాదేవీని (transaction) రికార్డ్ చేస్తుంది, మరియు ఇది ఒక లావాదేవీకి వ్యతిరేకమైన చర్యను రూపొందించగలదు.
sudo dnf history
sudo dnf history info 42
sudo dnf history undo 42dnf history ప్రతి లావాదేవీని ప్రారంభించిన కమాండ్ లైన్తో సహా ఒక సంఖ్యా క్రమంలో జాబితా చేస్తుంది. undo దానికి వ్యతిరేకమైన లావాదేవీని నిర్మిస్తుంది: ఆ లావాదేవీ ద్వారా ఇన్స్టాల్ చేయబడిన ప్యాకేజీలు తొలగించబడతాయి, మరియు అప్గ్రేడ్ చేయబడిన ప్యాకేజీలు మీరు గతంలో కలిగి ఉన్న వెర్షన్కు తిరిగి వెళ్తాయి. apt వినియోగదారులు dnf కి మారినప్పుడు ఎక్కువగా మిస్ అయ్యే ఫీచర్ ఇదే.
దీనికి కొన్ని పరిమితులు ఉన్నాయి, వీటిపై ఆధారపడే ముందు వాటిని తెలుసుకోవడం ముఖ్యం. undo కేవలం ఎనేబుల్ చేయబడిన రిపోజిటరీలో ఇంకా అందుబాటులో ఉన్న ప్యాకేజీ వెర్షన్ను మాత్రమే రీఇన్స్టాల్ చేయగలదు, కాబట్టి పాత బిల్డ్ మిర్రర్ నుండి తొలగించబడిన తర్వాత, undo ప్రయత్నం not-found ఎర్రర్తో విఫలమవుతుంది. రోల్బ్యాక్ కేవలం ప్యాకేజీ డేటాబేస్ వరకు మాత్రమే పనిచేస్తుంది. అప్గ్రేడ్ ద్వారా తిరిగి రాయబడిన కాన్ఫిగరేషన్ ఫైల్ అలాగే ఉంటుంది, మరియు మొదటిసారి ప్రారంభించినప్పుడు సర్వీస్ మైగ్రేట్ చేసిన డేటాబేస్ స్కీమా కూడా అలాగే ఉంటుంది. dnf ఫైళ్లను మాత్రమే వెనక్కి తీసుకువస్తుంది. ఇది మీ డేటాను తిరిగి తీసుకురాదు.
apt లో దీనికి సమానమైన ఫీచర్ లేదు. /var/log/apt/history.log కమాండ్ లైన్తో సహా ఏమి జరిగిందో ఖచ్చితంగా రికార్డ్ చేస్తుంది, కానీ లాగ్ను చదవడం అంటే చర్యను రద్దు చేయడం కాదు. apt వైపు రికవరీ మాన్యువల్గా చేయాలి: ఆర్కైవ్లో ఏ వెర్షన్లు ఇంకా ఉన్నాయో చూడటానికి apt list -a nginx రన్ చేయాలి, ఆపై ఒక వెర్షన్ను పిన్ చేయడానికి sudo apt install nginx=<exact version string> వాడాలి, మరియు తదుపరి అప్గ్రేడ్ మీ ఫిక్స్ను మార్చకుండా ఉండటానికి sudo apt-mark hold nginx జోడించాలి.
Package groups కు apt లో సమానమైనవి లేవు
dnf ఒకే కమాండ్తో నిర్దిష్ట ప్యాకేజీల సమూహాన్ని ఇన్స్టాల్ చేయగలదు.
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 లో గ్రూపులు ఉండవు. Debian లో దీనికి దగ్గరగా ఉండే భావన metapackage. ఇది ఖాళీగా ఉండే ప్యాకేజీ, దీని పని కేవలం ఇతర ప్యాకేజీలపై ఆధారపడటం (dependencies) మాత్రమే. ఉదాహరణకు build-essential. వీటి మధ్య ఆచరణాత్మక వ్యత్యాసం ఏమిటంటే: metapackage ను తొలగించినప్పుడు, మీరు apt autoremove రన్ చేసే వరకు దానిపై ఆధారపడిన ప్యాకేజీలు అలాగే ఉండిపోతాయి. అదే dnf group remove అయితే, గ్రూపులోని ప్యాకేజీలను ఒకే ట్రాన్సాక్షన్లో తొలగిస్తుంది.
unattended-upgrades మరియు dnf-automatic
ఈ రెండు కుటుంబాలు ఎవరూ లాగిన్ అవ్వకుండానే అప్డేట్లను ఇన్స్టాల్ చేసే మార్గాన్ని అందిస్తాయి. ఈ సాధనాల మధ్య ఉద్దేశ్యం తప్ప మరేమీ సమానంగా ఉండవు.
Ubuntu మరియు Debian లలో ఈ ప్యాకేజీ unattended-upgrades, ఇది /etc/apt/apt.conf.d/50unattended-upgrades లో కాన్ఫిగర్ చేయబడుతుంది; ఇక్కడ మీరు అప్డేట్లను ఏ మూలాల (origins) నుండి సేకరించవచ్చో పేర్కొనాలి. Ubuntuలో unattended upgrades సెటప్ చేయడం ఆ కాన్ఫిగరేషన్ ఫైల్ మరియు దానికి సంబంధించిన రీబూట్ అంశాలను వివరిస్తుంది.
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 కేవలం నివేదికను మాత్రమే ఇస్తుంది. ఈ యూనిట్లు ప్రతి ఒక్కటి /etc/dnf/automatic.conf లోని apply_updates సెట్టింగ్ను ఓవర్రైడ్ చేస్తాయి, కాబట్టి కాన్ఫిగరేషన్ ఫైల్లో ఏముందనే దానికంటే మీరు ఎంచుకున్న టైమర్ ముఖ్యమైనది.
దీనిని కేవలం సెక్యూరిటీ ఫిక్స్లకు మాత్రమే పరిమితం చేయడానికి, /etc/dnf/automatic.conf లో upgrade_type = security ని సెట్ చేయండి. ఈ ఫిల్టర్ మీ రిపోజిటరీలు సెక్యూరిటీ ఎరాటా (security errata) ను ప్రచురించడంపై ఆధారపడి ఉంటుంది, కాబట్టి ముందుగా dnf updateinfo list security తో తనిఖీ చేయండి. అప్డేట్లు పెండింగ్లో ఉన్న సర్వర్లో ఫలితం ఖాళీగా వస్తే, మెటాడేటా అక్కడ లేదని అర్థం, అప్పుడు security ఏమీ ఇన్స్టాల్ చేయదు.
Fedora లో, dnf 5 ఈ యూనిట్ పేరును మార్చింది. ఇది 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 దాని స్వంత బైనరీగా ఇప్పటికీ ఉంది, కానీ ప్రస్తుత డాక్యుమెంటేషన్ dnf config-manager అనే స్పెల్లింగ్ను ఉపయోగిస్తుంది. సిస్టమ్ dnf 5 కి మారినప్పుడు కూడా ఇది పనిచేస్తూనే ఉంటుంది.
dnf 4 మరియు dnf 5: కమాండ్ను కాపీ చేసే ముందు తనిఖీ చేయండి
dnf 5 అనేది పూర్తిగా తిరిగి వ్రాయబడిన వెర్షన్, ఇది అనేక కమాండ్ల స్పెల్లింగ్ను మార్చింది. Fedora 41 మరియు ఆ తర్వాతి వెర్షన్లు దీనిని dnf గా అందిస్తున్నాయి. ఎంటర్ప్రైజ్ రీబిల్డ్స్ (enterprise rebuilds) దీనికి మారడంలో నెమ్మదిగా ఉన్నాయి, కాబట్టి డిస్ట్రిబ్యూషన్ పేరును బట్టి ఊహించవద్దు. మీ సర్వర్లో dnf --version రన్ చేసి మొదటి లైన్ను చదవండి, ఎందుకంటే ఆ సంఖ్యను బట్టే మీరు కింద ఉన్న ఏ సింటాక్స్ను ఉపయోగించాలో నిర్ణయించబడుతుంది.
దీనికి స్పష్టమైన ఉదాహరణ Docker, ఇది ప్రతి వెర్షన్ కోసం వేర్వేరు రిపోజిటరీ కమాండ్లను ప్రచురిస్తుంది. 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 ను సబ్కమాండ్-ఆధారిత సాధనంగా మార్చింది, కాబట్టి పాత --add-repo ఫ్లాగ్ అంగీకరించబడదు మరియు మీకు రిపోజిటరీకి బదులుగా వినియోగ లోపం (usage error) వస్తుంది. మీరు ఎదుర్కొనే మరొక మార్పు రిపోజిటరీని ఎనేబుల్ చేయడం: dnf 4 లోని dnf config-manager --set-enabled crb, dnf 5 లో dnf config-manager setopt crb.enabled=1 గా మారుతుంది.
నిజంగా ముఖ్యమైన ఎంపిక
కేవలం package manager ఆధారంగా సర్వర్ డిస్ట్రిబ్యూషన్ను ఎంచుకోవడం సరైన పద్ధతి కాదు. dnf మరియు apt రెండూ ఒకే పనిని చేస్తాయి, వాటి పదజాలాన్ని నేర్చుకోవడానికి ఒక మధ్యాహ్నం సమయం సరిపోతుంది. మీ ఏడాది కాలాన్ని ప్రభావితం చేసేది రిపోజిటరీ వెనుక ఉన్న release model. Fedora వేగంగా మారుతుంది, ఒక release విడుదలైన సుమారు పదమూడు నెలల తర్వాత దానికి అప్డేట్లు ఆగిపోతాయి; ఇది workstation కు బాగుంటుంది కానీ, పదే పదే rebuild చేయకూడదనుకునే సర్వర్కు ఇది ఇబ్బందికరం. Rocky Linux మరియు AlmaLinux లు RHEL ను అనుసరిస్తాయి, కాబట్టి మీకు పదేళ్ల support window లభిస్తుంది మరియు package వెర్షన్లు ఉద్దేశపూర్వకంగా మారకుండా స్థిరంగా ఉంటాయి. Ubuntu ఈ రెండు రకాల సౌకర్యాలను అందిస్తుంది, మరియు సర్వర్లో Ubuntu LTS మరియు interim releases మధ్య వ్యత్యాసం అనేది apt ప్రపంచంలో తీసుకునే అదే నిర్ణయం.
ఆగస్టు 2026 నాటికి, ఇవన్నీ సాధారణ VPS images మాత్రమే. మీకు కావలసిన support window ను ఎంచుకోండి, ఆపై పైన పేర్కొన్న పది కమాండ్లను నేర్చుకోండి.
FAQ
apt update కు సమానమైన dnf కమాండ్ ఏమిటి?
దీని కోసం మీరు ప్రత్యేకంగా ఏ కమాండ్ రన్ చేయాల్సిన అవసరం లేదు. ప్రతి transaction కు ముందు dnf తన వద్ద ఉన్న cached metadata ఎంత పాతదో తనిఖీ చేస్తుంది, అది గడువు ముగిసినట్లయితే కొత్త కాపీని డౌన్లోడ్ చేసుకుంటుంది. కాబట్టి, ఒక నెల రోజుల పాటు మీరు తాకని సర్వర్పై కూడా dnf install రన్ చేస్తే, అది ప్రస్తుత ప్యాకేజీల వివరాలనే చూపిస్తుంది. sudo dnf makecache కమాండ్ అందుబాటులో ఉంది, ఇది ఆ డౌన్లోడ్ను బలవంతంగా చేస్తుంది, కానీ దీని అసలు ఉపయోగం ఏమిటంటే, మీరు తర్వాత చేసే ఇన్స్టాలేషన్ సమయంలో జాప్యం కలగకుండా, మీకు నచ్చిన సమయంలో ఆ అప్డేట్లను సిద్ధం చేసుకోవడం. "ఏ అప్డేట్లు పెండింగ్లో ఉన్నాయి" అని తెలుసుకోవడానికి dnf check-update కమాండ్ వాడాలి, ఇది apt list --upgradable కు సమానం మరియు అప్డేట్లు అందుబాటులో ఉన్నప్పుడు ఇది 100 అనే status code తో ముగుస్తుంది.
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 తో ఇన్స్టాల్ చేయవచ్చు.
నా సర్వర్ను పాడు చేసిన dnf upgrade ను నేను వెనక్కి తీసుకోవచ్చా (undo)?
అవును, కొన్ని పరిమితులతో ఇది సాధ్యమే. ట్రాన్సాక్షన్ నంబర్ను కనుగొనడానికి sudo dnf history రన్ చేయండి, అది ఏమి మార్పులు చేసిందో చూడటానికి sudo dnf history info <id> వాడండి, ఆపై sudo dnf history undo <id> తో వెనక్కి తీసుకోవచ్చు. పాత ప్యాకేజీ వెర్షన్లు ఏ రిపోజిటరీలోనూ అందుబాటులో లేకపోతే ఈ undo ప్రక్రియ విఫలమవుతుంది, ఎందుకంటే dnf కు మళ్ళీ ఇన్స్టాల్ చేయడానికి ప్యాకేజీలు ఉండవు. ఇది కేవలం ప్యాకేజీ మార్పులను మాత్రమే వెనక్కి తీసుకుంటుంది. అప్గ్రేడ్ ద్వారా మార్చబడిన కాన్ఫిగరేషన్ ఫైల్ లేదా సర్వీస్ మొదటిసారి స్టార్ట్ అయినప్పుడు మైగ్రేట్ అయిన డేటాబేస్ అలాగే ఉంటాయి. 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 నే రన్ చేస్తుంది, కాబట్టి పాత ట్యుటోరియల్స్ చాలా వరకు ఇప్పటికీ పనిచేస్తాయి. కొత్త స్క్రిప్ట్లు మరియు డాక్యుమెంటేషన్ రాసేటప్పుడు dnf నే వాడండి, ఎందుకంటే yum అనేది కేవలం అనుకూలత (compatibility) కోసం మాత్రమే ఉంది. పాత yum-config-manager బైనరీ కంటే dnf config-manager నే వాడటం మంచిది.
dnf remove ఎందుకు అన్ని ప్యాకేజీలను తొలగించాలనుకుంటుంది?
ఎందుకంటే dnf ఒకే transaction లో భాగంగా, వేరే దేనికీ అవసరం లేని డిపెండెన్సీలను కూడా తొలగిస్తుంది. అదే apt remove అయితే, మీరు విడిగా apt autoremove రన్ చేసే వరకు వాటిని అలాగే ఉంచుతుంది. అందుకే Ubuntu లో చిన్నదిగా అనిపించే రిమూవల్, Rocky Linux లో పెద్ద జాబితాను చూపించవచ్చు. ఈ జాబితా సాధారణంగా సరైనదే, కానీ నిర్ధారించే ముందు ఒకసారి చదవండి. ఆ జాబితాలో మీకు అవసరమైన ప్యాకేజీ ఏదైనా ఉంటే, దానిని ముందుగానే ఎక్స్ప్లిసిట్గా ఇన్స్టాల్ చేయండి, అప్పుడు dnf దానిని అవసరమైన ప్యాకేజీగా గుర్తిస్తుంది.