SSD Nodes Learn 🎉 VPS $5.50/মাস থেকে
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-13

Rocky ও Fedora-তে apt কমান্ডের dnf সমতুল্য

Rocky Linux, AlmaLinux ও Fedora-তে পরিচিত প্রতিটি apt কমান্ডের dnf সমতুল্য জানুন। repository, rollback, group install ও unattended update-এর সীমাবদ্ধতাও দেখুন।

সংক্ষিপ্ত উত্তর

apt থেকে dnf-এ যাওয়া মূলত পরিভাষা পরিবর্তন। apt install nginx-এর পরিবর্তে dnf install nginx ব্যবহার হয়। apt remove nginx-এর পরিবর্তে dnf remove nginx ব্যবহার হয়। apt update-এর সরাসরি সমতুল্য নেই, কারণ cache করা কপি পুরোনো হয়ে গেলে dnf নিজেই repository metadata refresh করে। সহজ অংশের এই রূপান্তর এক স্ক্রিনেই শেষ হয়। গুরুত্বপূর্ণ অংশ হলো সেই চারটি কাজ, যেগুলোর সরাসরি সমতুল্য নেই: repository যোগ করা, কোনো transaction পূর্বাবস্থায় ফেরানো, package group ইনস্টল করা এবং unattended update চালানো।

নিচের প্রতিটি command আপনার নিজের server-এ চালানোর জন্য লেখা। y-এর উত্তর দেওয়ার আগে dnf যে transaction summary দেখায়, তা পড়ুন। কোনো package অপসারণের ক্ষেত্রে বিশেষভাবে সতর্ক থাকুন।

কোন ডিস্ট্রিবিউশনে dnf এবং কোনটিতে apt ব্যবহার হয়

Fedora, Red Hat Enterprise Linux (RHEL) এবং RHEL-এর পুনর্নির্মিত সংস্করণ Rocky Linux, AlmaLinux ও CentOS Stream-এ প্যাকেজ ম্যানেজার হলো dnf। Debian এবং Debian-ভিত্তিক সব ডিস্ট্রিবিউশনে প্যাকেজ ম্যানেজার হলো apt; VPS-এর ক্ষেত্রে এর অর্থ প্রায় সব সময় Ubuntu। তৃতীয় কোনো উত্তর নেই। আপনার provider-এর image list-এ Rocky Linux বা AlmaLinux থাকলে আপনি dnf পাবেন। সেখানে Ubuntu থাকলে আপনি apt পাবেন।

প্যাকেজের format ব্যবহৃত tool অনুসরণ করে। dnf .rpm ফাইল install করে এবং এর database হলো rpmapt .deb ফাইল install করে এবং এর database হলো dpkg। তাই অনেক vendor-এর install page-এ প্রতিটি family-এর জন্য আলাদা tab থাকে। এ কারণেই কোনো project-এর release page থেকে download করা .deb Rocky Linux-এ কোনো কাজে আসে না।

আপনি যে family-ই ব্যবহার করুন, প্রথম login-এর কাজ একই। নতুন VPS-এ প্রথম দশ মিনিট—এই নির্দেশনা উভয়ের ক্ষেত্রেই প্রযোজ্য। শুধু install command পরিবর্তিত হয়।

প্রতিটি 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 nginx

apt show হলো dnf info। এই গোষ্ঠীতে এটিই একমাত্র ভিন্ন নামে ব্যবহৃত verb, তবে এর একটি আচরণ আলাদা এবং সেটিই অনেককে বিভ্রান্ত করে। dnf remove এমন dependency-ও সরিয়ে দেয়, যেগুলোর আর কোনো ব্যবহারকারী নেই। অন্যদিকে apt remove সেগুলো পরবর্তী apt autoremove-এর জন্য ইনস্টল অবস্থায় রেখে দেয়। তাই Rocky Linux-এ একটি ছোট utility সরাতে গেলে তার সঙ্গে এক ডজন library সরানোর প্রস্তাব দেখা যেতে পারে। নিশ্চিত করার আগে তালিকাটি পড়ুন।

Metadata refresh করা, অপেক্ষমাণ আপডেট দেখা এবং 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 upgrade

apt-এর ক্ষেত্রে apt update বাধ্যতামূলক, কারণ apt disk-এ থাকা metadata ব্যবহার করে এবং কয়েক মাস আগে archive থেকে সরানো কোনো version-ও নির্দ্বিধায় ইনস্টল করতে পারে। প্রতিটি transaction-এর আগে dnf তার cache কতটা পুরোনো তা পরীক্ষা করে এবং নিজে থেকেই নতুন metadata download করে। তাই পরবর্তী install-এর সময় না করে এখনই download করাতে চাইলে কেবল sudo dnf makecache ব্যবহার করুন।

apt পুরো system upgrade-কে দুটি ভাগে বিভক্ত করে, কিন্তু dnf তা করে না। apt upgrade কোনো installed package সরাতে অস্বীকৃতি জানায়। তাই কোনো update-এর জন্য একটি package সরানো প্রয়োজন হলে এটি মাঝপথে থেমে যায়। apt full-upgrade হলো package সরানোর অনুমোদিত version। dnf-এ এমন কোনো সীমাবদ্ধতা নেই। তাই dnf upgrade হলো apt full-upgrade-এর সমতুল্য, apt upgrade-এর নয়। dnf update একই command-এর পুরোনো alias এবং এখনও কাজ করে।

আপনি যদি এটি script-এ ব্যবহার করেন, একটি বিষয় গুরুত্বপূর্ণ: আপডেট অপেক্ষা করলে dnf check-update status 100 দিয়ে শেষ হয়, আর কোনো আপডেট না থাকলে 0 দিয়ে শেষ হয়। apt list --upgradable উভয় ক্ষেত্রেই 0 দিয়ে শেষ হয়। তাই script-কে এর output parse করতে হয়।

কোন package ইনস্টল আছে তা তালিকাভুক্ত করা এবং কোনো file-এর মালিক 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

প্রতিটি block-এর শেষ লাইনটি তার আগের লাইনগুলোর চেয়ে ভিন্ন প্রশ্নের উত্তর দেয়। dpkg -S এবং rpm -qf শুধু ইতিমধ্যে installed package-এ অনুসন্ধান করে। তাই এগুলো উত্তর দেয়, “এই file এখানে কোন package দিয়েছে?” apt-file search এবং dnf provides repository-তে অনুসন্ধান করে। তাই এগুলো উত্তর দেয়, “এই file পেতে কোন package ইনস্টল করব?” apt-file Ubuntu-তে একটি আলাদা package এবং প্রথমবার চালানোর আগে sudo apt-file update প্রয়োজন। dnf provides-এর অতিরিক্ত কিছু প্রয়োজন হয় না। তবে প্রথমবার এটি ধীর হতে পারে, কারণ উত্তর দেওয়ার জন্য dnf repository-এর file list download করে।

এখনও ইনস্টল না করা কোনো package-এর ভেতরের file তালিকাভুক্ত করতে 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 nginx

Rocky Linux বা AlmaLinux-এ versionlock default হিসেবে ইনস্টল থাকে না। তাই নতুন system-এ ওই লাইনগুলোর প্রথমটি No such command: versionlock error দিয়ে ব্যর্থ হয়। প্রথমে sudo dnf install python3-dnf-plugin-versionlock দিয়ে এটি ইনস্টল করুন। apt-mark hold-এর জন্য apt-এ অতিরিক্ত কিছু প্রয়োজন হয় না, কারণ hold হলো plugin নয়, বরং dpkg state।

ম্যাপিং যেখানে ভেঙে যায়: একটি repository যোগ করা

এটি সেই অংশ, যেখানে Ubuntu administrator-রা এমন একটি command খুঁজতে থাকেন, যার কোনো অস্তিত্ব নেই। dnf-এ কোনো add-apt-repository নেই, এবং personal package archive (PPA)-ও নেই। PPA হলো Launchpad পরিচালিত একটি service, আর Launchpad হলো Ubuntu infrastructure-এর অংশ। RPM জগতে এমন কোনো service নেই, যেখানে এটি host করা হয়।

এর পরিবর্তে dnf প্রতিটি repository-এর জন্য /etc/yum.repos.d/-এ একটি করে plain text file ব্যবহার করে। প্রতিটি 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 variable। dnf runtime-এ আপনার major release number এবং CPU architecture বসিয়ে দেয়। তাই একই file version 9 ও version 10, এবং x86_64 ও aarch64—উভয় ক্ষেত্রেই কাজ করে।

বেশির ভাগ vendor এই file প্রকাশ করে এবং সেটি fetch করতে বলে। RHEL ও তার rebuild-এর জন্য Docker-এর নিজস্ব নির্দেশনায় দুটি command রয়েছে:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

প্রথম line-টি প্রয়োজন, কারণ config-manager একটি plugin; এটি dnf-এর নিজস্ব অংশ নয়। এটি বাদ দিলে দ্বিতীয় line-টি No such command: config-manager-সহ ব্যর্থ হয়। আপনি চাইলে একই .repo file curl ব্যবহার করে হাতে /etc/yum.repos.d/-এ download করতে পারেন। ফলাফল একই হবে। VPS-এ Docker install করা-এ একই কাজের Debian পদ্ধতি দেখানো হয়েছে। সেখানে সমতুল্য ধাপে একটি source list এবং একটি signing key দুটি ভিন্ন directory-তে লেখা হয়।

Repository-তে সমস্যা হলে কোথায় খুঁজবেন, তা এই layout-এর পার্থক্য নির্ধারণ করে। apt definition-গুলো /etc/apt/sources.list এবং /etc/apt/sources.list.d/-এ রাখে, আর signing key আলাদাভাবে /etc/apt/keyrings/-এর অধীনে রাখে। dnf সবকিছু /etc/yum.repos.d/-এ রাখে, এবং key হলো .repo file-এর ভেতরের একটি URL। তাই পড়ার জন্য একটি file এবং মুছে ফেলার জন্য একটি file-ই থাকে। নতুন apt deb822 format-এর মাধ্যমে একই ধরনের বিন্যাসের দিকে এগিয়েছে; সেখানে প্রতিটি repository-এর জন্য একটি .sources file থাকে। আপনি যদি Ubuntu-তে deb822 duplicate sources error-এর মুখোমুখি হয়ে থাকেন, তাহলে apt-এর এই সমস্যার অর্ধেক আপনি ইতিমধ্যেই দেখেছেন।

EPEL হলো সেই archive, যা অধিকাংশ guide ধরে নেয়

Extra Packages for Enterprise Linux (EPEL) হলো একটি Fedora project, যা RHEL এবং এর rebuild-এর জন্য Fedora package তৈরি করে। এই ecosystem-এ এটিই universal PPA-এর সবচেয়ে কাছের বিকল্প, এবং বিপুল সংখ্যক tutorial ধরে নেয় যে এটি আগে থেকেই enabled আছে। কোনো package project-এর নিজস্ব website-এ দেখা গেলেও যদি dnf install-এর উত্তর No match for argument হয়, তাহলে প্রথমে EPEL পরীক্ষা করুন।

Rocky Linux এবং AlmaLinux-এ:

sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
sudo dnf makecache

CRB হলো CodeReady Builder—এটি distribution-এর সঙ্গে থাকা library-গুলোর একটি repository, কিন্তু defaultভাবে enabled থাকে না। অধিকাংশ EPEL package CRB-এর কোনো কিছুর ওপর নির্ভর করে। তাই CRB ছাড়া EPEL enable করলেও সঙ্গে সঙ্গে error দেখা যায় না। পরে install করার সময় এমন কোনো package-এর unresolved dependency দেখিয়ে ব্যর্থ হয়, যার নাম আপনি আগে কখনও শোনেননি। আগে CRB enable করলে এই ধরনের error আর দেখা যায় না।

RHEL-এ CRB config-manager-এর মাধ্যমে নয়, আপনার subscription-এর মাধ্যমে পাওয়া যায়। তাই ওই ধাপের জন্য Red Hat-এর নিজস্ব EPEL নির্দেশনা অনুসরণ করুন। Fedora-তে এর কোনোটিই প্রয়োজন নেই, কারণ এর main repository-তেই EPEL যে package-গুলো backport করে, সেগুলো আগে থেকেই থাকে। EPEL-এর policy হলো RHEL যে package ship করে, সেটি কখনও replace না করা। তাই repository যোগ করলেও আপনার server-এ আগে থেকে installed কোনো কিছুর পরিবর্তন হয় না।

dnf history undo, যা apt পারে না

dnf প্রতিটি transaction-এর রেকর্ড রাখে এবং একটি transaction-এর বিপরীত transaction তৈরি করতে পারে।

sudo dnf history
sudo dnf history info 42
sudo dnf history undo 42

dnf history প্রতিটি transaction-এর নম্বরযুক্ত তালিকা দেখায় এবং প্রতিটি transaction শুরু করা command line-ও দেখায়। undo বিপরীত transaction তৈরি করে: ওই transaction যে package install করেছিল, সেগুলো remove করা হয়; আর যে package upgrade করেছিল, সেগুলো আগের version-এ ফিরিয়ে নেওয়া হয়। apt ব্যবহারকারীরা switching করার পরে এই feature-টিই সবচেয়ে বেশি অনুপস্থিত মনে করেন।

এর বাস্তব সীমাবদ্ধতা আছে। তাই এর ওপর নির্ভর করার আগে সেগুলো জানা দরকার। undo কেবল enabled repository-তে এখনও থাকা কোনো package version পুনরায় install করতে পারে। পুরোনো build mirror থেকে সরিয়ে নেওয়ার পরে undo করলে not-found error দিয়ে ব্যর্থ হবে। Rollback package database পর্যন্তই কাজ করে। Upgrade যে config file নতুন করে লিখেছে, সেটি সেভাবেই লেখা থাকবে। কোনো service প্রথমবার start হওয়ার সময় যে database schema migrate করেছে, সেটিও migrated অবস্থায় থাকবে। dnf file-গুলো আগের অবস্থায় ফিরিয়ে দেয়। আপনার data আগের অবস্থায় ফিরিয়ে দেয় না।

apt-এর কোনো equivalent নেই। /var/log/apt/history.log ঠিক কী ঘটেছে তার রেকর্ড রাখে, command line-সহ। তবে log পড়া আর transaction undo করা এক বিষয় নয়। apt-এ recovery করতে manual পদক্ষেপ নিতে হয়: archive-এ এখনও কোন version আছে তা দেখতে apt list -a nginx চালান। তারপর একটি version pin করতে sudo apt install nginx=<exact version string> চালান। এরপর sudo apt-mark hold nginx যোগ করুন, যাতে পরবর্তী upgrade আপনার fix আবার পরিবর্তন না করে।

apt-এ package group-এর সমতুল্য নেই

dnf একটি কমান্ডেই নামযুক্ত package-এর সেট install করতে পারে।

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, যার একমাত্র content হলো dependency-এর একটি তালিকা; যেমন build-essential। ব্যবহারিক পার্থক্যটি package সরানোর সময় দেখা যায়: metapackage সরালে তার dependency-গুলো install অবস্থায় থেকে যায়, যতক্ষণ না আপনি apt autoremove চালান। অন্যদিকে dnf group remove একই transaction-এ group-এর package-গুলোও সরিয়ে দেয়।

unattended-upgrades এবং dnf-automatic

দুই পরিবারই কোনো ব্যবহারকারী লগ ইন না থাকলেও আপডেট ইনস্টল করার ব্যবস্থা দেয়। উদ্দেশ্য ছাড়া তাদের মধ্যে আর কোনো মিল নেই।

Ubuntu এবং Debian-এ প্যাকেজটি হলো unattended-upgrades। এটি /etc/apt/apt.conf.d/50unattended-upgrades-এ কনফিগার করা হয়। সেখানে কোন কোন origin থেকে আপডেট নেওয়ার অনুমতি আছে, তা নির্ধারণ করা হয়। Ubuntu-এ unattended upgrades সেটআপ করা-এ ওই configuration file এবং এর সঙ্গে সম্পর্কিত reboot-এর বিষয়টি ব্যাখ্যা করা হয়েছে।

Rocky Linux, AlmaLinux এবং Fedora-এ প্যাকেজটি হলো dnf-automatic। আপনি যে systemd timer enable করবেন, সেটিই এর আচরণ নির্ধারণ করে।

sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer
systemctl list-timers 'dnf-automatic*'

dnf-automatic-install.timer আপডেট download করে এবং প্রয়োগ করে। dnf-automatic-download.timer শুধু আপডেট download করে থেমে যায়; install আপনাকেই করতে হবে। dnf-automatic-notifyonly.timer শুধু রিপোর্ট দেয়। প্রতিটি unit /etc/dnf/automatic.conf-এ থাকা apply_updates setting-কে override করে। তাই configuration file-এ কী লেখা আছে তার চেয়ে আপনি কোন timer বেছে নিচ্ছেন, সেটিই বেশি গুরুত্বপূর্ণ।

শুধু security fix-এ সীমাবদ্ধ রাখতে /etc/dnf/automatic.conf-এ upgrade_type = security সেট করুন। এই filter কাজ করার জন্য আপনার repository-গুলোকে security errata প্রকাশ করতে হবে। তাই আগে dnf updateinfo list security দিয়ে পরীক্ষা করুন। আপডেট pending থাকা কোনো সিস্টেমে ফলাফল খালি হলে বুঝতে হবে metadata নেই। সে ক্ষেত্রে security কিছুই install করবে না।

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 এখনও tutorial-এ দেখা যায়, কারণ এর বেশিরভাগই সরাসরি কাজ করে। yum install, yum remove এবং yum update—সবই কাজ করে। তবে একটি অভ্যাস বাদ দেওয়া ভালো: dnf 4 system-এ yum-config-manager এখনও নিজস্ব binary হিসেবে থাকে, কিন্তু বর্তমান documentation-এ dnf config-manager বানানটি ব্যবহার করা হয়। সিস্টেমটি dnf 5-এ পরিবর্তিত হলেও এটিই কাজ করতে থাকে।

dnf 4 এবং dnf 5: কোনো command কপি করার আগে পরীক্ষা করুন

dnf 5 একটি পুনর্লিখিত সংস্করণ। এতে কয়েকটি command-এর বানান পরিবর্তন করা হয়েছে। Fedora 41 এবং পরবর্তী সংস্করণে এটি dnf হিসেবে সরবরাহ করা হয়। Enterprise rebuild-গুলোতে পরিবর্তনটি ধীরে হয়েছে। তাই distribution-এর নাম দেখে অনুমান করবেন না। নিজের server-এ dnf --version চালান এবং প্রথম লাইনটি পড়ুন। ওই সংস্করণ নম্বরের ওপর নির্ভর করে নিচের কোন syntax ব্যবহার করবেন।

সবচেয়ে পরিষ্কার উদাহরণ Docker-এর ক্ষেত্রে দেখা যায়। Docker প্রতিটি সংস্করণের জন্য আলাদা repository command প্রকাশ করে। RHEL এবং এর rebuild-এ dnf 4 ব্যবহার করলে:

sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

Fedora-তে dnf 5 ব্যবহার করলে:

sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo

Vendor একই এবং কাজও একই। কিন্তু command-এর syntax আলাদা। dnf 5-এ config-manager-কে subcommand-ভিত্তিক tool করা হয়েছে। তাই পুরোনো --add-repo flag গ্রহণ করা হয় না। এর পরিবর্তে usage error দেখা যায় এবং repository যোগ হয় না। আরেকটি পরিবর্তন 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 করে, এবং কোনো নির্দিষ্ট release প্রকাশের প্রায় 13 মাস পরে সেটির update বন্ধ হয়ে যায়। workstation-এর জন্য এটি ঠিক আছে, কিন্তু যে server আপনি পুনর্নির্মাণ করতে চান না তার জন্য এটি সমস্যাজনক। Rocky Linux এবং AlmaLinux RHEL অনুসরণ করে। তাই আপনি 10 বছরের support window এবং এমন package version পান, যেগুলো ইচ্ছাকৃতভাবে স্থিতিশীল রাখা হয়। Ubuntu উভয় ধরনের release দেয়, এবং server-এ Ubuntu LTS ও interim release-এর পার্থক্য apt ecosystem-এর ভেতরে নেওয়া একই সিদ্ধান্ত।

August 2026 অনুযায়ী, এগুলো সবই সাধারণ VPS image। আপনার পছন্দের support window বেছে নিন, তারপর উপরের 10টি command শিখুন।

FAQ

apt update-এর সমতুল্য dnf কমান্ড কী?

এ জন্য আপনাকে কোনো কমান্ড চালাতে হবে না। প্রতিটি transaction-এর আগে dnf তার cached metadata কত পুরোনো তা পরীক্ষা করে। metadata-এর মেয়াদ শেষ হলে এটি নতুন কপি download করে। তাই dnf install এক মাস ধরে স্পর্শ না করা server-এও বর্তমান package দেখতে পায়। sudo dnf makecache কমান্ডটি আছে এবং এটি জোর করে metadata download করায়। তবে এর মূল সুবিধা হলো পরবর্তী install-এর সময় delay না রেখে আপনার পছন্দের সময়ে delay নেওয়া। “আমার জন্য কী অপেক্ষা করছে”—এই প্রশ্নের উত্তর দেয় dnf check-update। এটি apt list --upgradable-এর তথ্য দেখায় এবং update উপলভ্য থাকলে status 100 দিয়ে শেষ হয়।

Rocky Linux বা Fedora-তে PPA-এর সমতুল্য কী?

কিছু নেই। Personal package archive হলো Launchpad-এর একটি service। Launchpad হলো Ubuntu-এর infrastructure। তাই add-apt-repository-এর অনুবাদ করার মতো কোনো সমতুল্য নেই। RPM-এর সমতুল্য হলো .repo file, যা /etc/yum.repos.d/-এ থাকে এবং একটি name, একটি baseurl ও একটি gpgkey ধারণ করে। Vendor-রা এই file প্রকাশ করে। dnf 4-এ sudo dnf config-manager --add-repo <url> অথবা dnf 5-এ sudo dnf config-manager addrepo --from-repofile <url> এটি download করে সঠিক স্থানে রাখে। সাধারণ অতিরিক্ত software-এর ক্ষেত্রে সাধারণত EPEL ব্যবহার করা হয়। এটি enable করতে sudo dnf config-manager --set-enabled crb-এর পরে sudo dnf install epel-release চালান।

dnf upgrade-এর কারণে server নষ্ট হলে কি তা পূর্বাবস্থায় ফেরানো যায়?

হ্যাঁ, কিছু সীমার মধ্যে। Transaction number খুঁজতে sudo dnf history চালান। এটি কী পরিবর্তন করেছে তা নির্দিষ্টভাবে দেখতে sudo dnf history info <id> চালান। এরপর sudo dnf history undo <id> চালান। Enabled repository-তে পুরোনো package version আর না থাকলে undo ব্যর্থ হবে, কারণ dnf-এর reinstall করার মতো কোনো package থাকবে না। এটি কেবল package-এর পরিবর্তন পূর্বাবস্থায় ফেরায়। Upgrade-এর মাধ্যমে পরিবর্তিত configuration file অথবা service প্রথমবার start হওয়ার সময় migrate করা database আগের অবস্থায় ফেরে না। apt-এ এর কোনো সমতুল্য command নেই। সেখানে শুধু /var/log/apt/history.log-এ record থাকে।

Rocky Linux এবং AlmaLinux-এ কি yum এখনও কাজ করে?

কাজ করে, কারণ /usr/bin/yum হলো dnf-এর একটি symbolic link। নিজের system-এ ls -l /usr/bin/yum চালিয়ে এটি নিশ্চিত করুন। yum install httpd টাইপ করলে dnf চালু হয়। তাই পুরোনো tutorial-গুলো বেশিরভাগ ক্ষেত্রেই এখনও কাজ করে। নতুন script ও documentation-এ dnf ব্যবহার করুন, কারণ yum নামটি শুধু compatibility-এর জন্য রাখা হয়েছে। পুরোনো yum-config-manager binary-এর পরিবর্তে dnf config-manager ব্যবহার করুন।

dnf remove এত package মুছে ফেলতে চায় কেন?

কারণ একই transaction-এর অংশ হিসেবে dnf এমন dependency সরিয়ে দেয়, যেগুলো আর কোনো package-এর প্রয়োজন নেই। অন্যদিকে apt remove সেগুলো রেখে দেয়, যতক্ষণ না আপনি আলাদাভাবে apt autoremove চালান। তাই Ubuntu-তে ছোট দেখানো কোনো removal Rocky Linux-এ দীর্ঘ package তালিকা দেখাতে পারে। তালিকাটি সাধারণত সঠিক হয়। তবে নিশ্চিত করার আগে তা পড়ে নিন। তালিকায় থাকা কোনো package আপনি রাখতে চাইলে আগে সেটি explicitly install করুন। এতে dnf package-টিকে স্বতন্ত্রভাবে প্রয়োজনীয় হিসেবে record করবে।