Linux-এ apt, dnf এবং pacman সফটওয়্যার ইনস্টল ও আপডেট করার মূল ভিত্তি। এগুলো “ভেঙে গেছে” বলে মনে হলে সমস্যা শুধু নতুন অ্যাপ ইনস্টল করতে না পারাতেই সীমাবদ্ধ থাকে না; নিরাপত্তা আপডেটও বন্ধ হয়ে যেতে পারে এবং পুরো সিস্টেম রক্ষণাবেক্ষণ কঠিন হয়ে পড়ে। সাধারণ কারণের মধ্যে আছে মাঝপথে বন্ধ হয়ে যাওয়া আপডেট, খারাপ mirror, অসামঞ্জস্যপূর্ণ package database, signature verification ব্যর্থ হওয়া, broken dependency, অথবা lock file থেকে যাওয়া। সবচেয়ে গুরুত্বপূর্ণ বিষয় হলো cache বা configuration অন্ধভাবে মুছে ফেলা নয়, বরং আগে বোঝা আসলে কোন স্তরে সমস্যা হয়েছে।
অনেক সময় মনে হয় package manager-ই নষ্ট হয়েছে, অথচ আসল সমস্যা থাকে network, DNS, repository configuration অথবা disk space-এ। তাই শুরুতেই আলাদা করে দেখতে হবে সমস্যা communication-এ, repository-তে, local database-এ, নাকি dependency-তে।
সাধারণ লক্ষণ
apt update,dnf updateবাpacman -Syuerror দিয়ে বন্ধ হয়ে যায়- dependency resolve হচ্ছে না বা broken package আছে এমন বার্তা দেখা যায়
- GPG বা signature error-এর কারণে repository ব্যবহার করা যায় না
- database lock থাকার কারণে কোনো package operation করা যায় না
- mirror থেকে 404 বা timeout পাওয়া যায়
- মাঝপথে বন্ধ হওয়া update-এর পর package operation অস্বাভাবিক হয়ে যায়
- কিছু library update-এর পরে package manager নিজেই আর চালু হয় না
প্রথমে কী পরীক্ষা করবেন
প্রথম ধাপ হলো বোঝা, সমস্যাটি সত্যিই package manager-এর কিনা, নাকি network বা DNS-এর।
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
যদি network বা DNS আগে থেকেই নষ্ট থাকে, তাহলে apt, dnf বা pacman ব্যর্থ হওয়া শুধুই তার ফল। কিন্তু যদি সাধারণ network ঠিকমতো চলে আর শুধু package operation-এ সমস্যা হয়, তাহলে repository, key, lock, cache, database এবং dependency পরীক্ষা করতে হবে।
apt / dnf / pacman-এ সাধারণ কারণ
1. update মাঝপথে থেমে যাওয়া
সবচেয়ে সাধারণ কারণগুলোর একটি হলো update চলাকালে মাঝখানে বন্ধ হয়ে যাওয়া। বিদ্যুৎ চলে যাওয়া, terminal বন্ধ হয়ে যাওয়া, SSH connection কেটে যাওয়া, বা GUI freeze হয়ে যাওয়ার ফলে package database বা কিছু package অর্ধেক অবস্থায় থেকে যেতে পারে।
এমন অবস্থায় সঙ্গে সঙ্গে ফাইল মুছে ফেলার চেয়ে আগে অসমাপ্ত অবস্থাটি সম্পূর্ণ করার চেষ্টা করা ভালো।
2. lock file থেকে যাওয়া
Package manager একসঙ্গে একাধিক operation আটকাতে lock ব্যবহার করে। অন্য কোনো process এখনও চললে, অথবা crash-এর পরে lock file রয়ে গেলে, package manager বলবে এটি আগে থেকেই ব্যবহৃত হচ্ছে।
তবে lock file না বুঝে মুছে ফেলা ঠিক নয়। আগে নিশ্চিত হতে হবে যে সংশ্লিষ্ট process সত্যিই চলছে না।
ps aux | grep -E 'apt|dpkg|dnf|yum|pacman'
3. repository configuration নষ্ট হওয়া
Third-party repository, পুরোনো PPA, অকার্যকর mirror, বা distribution upgrade-এর পরে পড়ে থাকা পুরোনো configuration package source-কে অবৈধ করে দিতে পারে। সাধারণ লক্ষণ হলো 404, Release file না পাওয়া, বা metadata fetch failure।
4. GPG key এবং signature সমস্যা
Repository সাধারণত cryptographic verification ব্যবহার করে। যদি key-এর মেয়াদ শেষ হয়ে যায়, import না করা থাকে, key management পদ্ধতি বদলে যায়, বা local keyring নষ্ট হয়ে যায়, তাহলে package manager নিরাপত্তার কারণে থেমে যাবে।
5. dependency নষ্ট হয়ে যাওয়া
Dependency সাধারণত তখন নষ্ট হয় যখন জোর করে incompatible package version install করা হয়, একাধিক repository মিশিয়ে ফেলা হয়, partial upgrade করা হয়, বা system library হাতে পরিবর্তন করা হয়। বিশেষ করে pacman ভিত্তিক সিস্টেমে partial upgrade খুবই নিরুৎসাহিত, তবে apt এবং dnf-ও source মিশ্রণে অস্থিতিশীল হয়ে যেতে পারে।
6. cache বা metadata নষ্ট হওয়া
অর্ধেক ডাউনলোড হওয়া package, পুরোনো metadata, বা ক্ষতিগ্রস্ত sync database package list সঠিকভাবে পড়তে বাধা দিতে পারে এবং installation ব্যর্থ করতে পারে।
7. disk space কম থাকা
আরেকটি সাধারণ কিন্তু অবহেলিত কারণ হলো পর্যাপ্ত disk space না থাকা। /var বা /boot পূর্ণ হয়ে গেলে extraction ও file writing মাঝপথে ব্যর্থ হতে পারে এবং package system অসামঞ্জস্যপূর্ণ অবস্থায় থেকে যেতে পারে।
df -h
du -sh /var/cache/* 2>/dev/null
apt নষ্ট হলে কী দেখবেন
Debian / Ubuntu সিস্টেমে শুধু apt নয়, নিচের স্তরের dpkg-এর অবস্থাও পরীক্ষা করা জরুরি।
অসমাপ্ত configure হওয়া package ঠিক করা
sudo dpkg --configure -a
sudo apt --fix-broken install
মাঝপথে থেমে যাওয়া update-এর পরে এই দুটি command সাধারণত সবচেয়ে গুরুত্বপূর্ণ শুরুর ধাপ।
Package list আবার আনা
sudo apt update
এখানে যদি 404, signature error বা Release file error দেখা যায়, তাহলে /etc/apt/sources.list এবং /etc/apt/sources.list.d/ পরীক্ষা করতে হবে।
Cache পরিষ্কার করা
sudo apt clean
sudo apt autoclean
যদি সমস্যা corrupted বা পুরোনো cache থেকে হয়, তাহলে এটি সাহায্য করতে পারে।
dnf নষ্ট হলে কী দেখবেন
Fedora / RHEL সিস্টেমে metadata, transaction history এবং repository configuration-এর দিকে বিশেষ মনোযোগ দিতে হবে।
Metadata নতুন করে তৈরি করা
sudo dnf clean all
sudo dnf makecache
Mirror information বা metadata নষ্ট হয়ে গেলে এটি একটি কার্যকর শুরুর ধাপ হতে পারে।
Dependency এবং system consistency পরীক্ষা করা
sudo dnf check
sudo dnf distro-sync
এটি বোঝাতে সাহায্য করে যে system এখনও distribution-এর প্রত্যাশিত package state-এর সঙ্গে সামঞ্জস্যপূর্ণ কিনা।
History দেখা
sudo dnf history
sudo dnf history info last
History দেখে প্রায়ই বোঝা যায় কোন update-এর পর থেকে সমস্যা শুরু হয়েছে।
pacman নষ্ট হলে কী দেখবেন
Arch Linux-এ sync database, key, mirror এবং partial update-এর উপস্থিতি বিশেষভাবে পরীক্ষা করতে হবে।
Database resync করা
sudo pacman -Syy
যদি local sync database repository-এর সঙ্গে আর মেলে না, এটি সাধারণত প্রথম ধাপ।
Full system update করা
sudo pacman -Syu
Arch-এ partial update এড়িয়ে চলা উচিত। কিছু package update করে বাকিগুলো পুরোনো রেখে দিলে system inconsistency তৈরি হওয়ার সম্ভাবনা খুব বেশি।
Key সমস্যা পরীক্ষা করা
sudo pacman-key --init
sudo pacman-key --populate
যদি সমস্যা signature বা keyring-এ হয়, তাহলে পুনরায় initialize করা লাগতে পারে।
Log অত্যন্ত গুরুত্বপূর্ণ
Package manager-এর error-এ শুধু শেষ লাইন দেখলে চলবে না। Log এবং detailed output-ই বলে দিতে পারে এটি signature, dependency, network নাকি database সমস্যা।
apt / dpkg
sudo tail -n 100 /var/log/apt/history.log
sudo tail -n 100 /var/log/dpkg.log
dnf
sudo dnf history
sudo journalctl -xe --no-pager | tail -n 100
pacman
sudo tail -n 100 /var/log/pacman.log
ব্যবহারিক পরীক্ষার ক্রম
ধাপ 1: Network ও DNS পরীক্ষা করুন
ping -c 4 8.8.8.8
ping -c 4 google.com
ধাপ 2: Disk space পরীক্ষা করুন
df -h
ধাপ 3: Process ও lock পরীক্ষা করুন
ps aux | grep -E 'apt|dpkg|dnf|yum|pacman'
ধাপ 4: Log পড়ুন
প্রথমে বুঝতে হবে সর্বশেষ কোন নির্দিষ্ট operation আসলে ব্যর্থ হয়েছে।
ধাপ 5: Distribution অনুযায়ী recovery command ব্যবহার করুন
apt-এর ক্ষেত্রে সাধারণত dpkg --configure -a, dnf-এর ক্ষেত্রে metadata cleanup, আর pacman-এর ক্ষেত্রে full sync ও key check দিয়ে শুরু করা হয়।
যা করা উচিত নয়
- কারণ না বুঝে lock file মুছে ফেলা
- অবিশ্বস্ত উৎস থেকে .deb / .rpm / অন্য package install করা
- Arch-এ বারবার partial update করা
- apt-এর সঙ্গে dpkg, dnf-এর সঙ্গে rpm বা pacman-এর সঙ্গে manual file replacement এলোমেলোভাবে মেশানো
- Error না বুঝে signature verification বন্ধ করে দেওয়া
সমস্যা আবার না হওয়ার উপায়
- Update চলাকালে power loss বা forced shutdown এড়িয়ে চলুন
- অতিরিক্ত third-party repository যোগ করবেন না
- বড় update-এর আগে snapshot বা backup নিন
- নিজের distribution-এর recommended update method অনুসরণ করুন
- বিশেষ করে Arch-এ partial update এড়িয়ে চলুন
উপসংহার
দেখতে apt, dnf বা pacman নিজেই নষ্ট মনে হলেও, প্রকৃত কারণ প্রায়ই network, lock, signature, dependency, cache, disk space অথবা repository configuration-এ থাকে। সবচেয়ে গুরুত্বপূর্ণ হলো সঙ্গে সঙ্গে delete বা reinstall না করে, আগে log দেখে বোঝা সমস্যাটি কোন স্তরে। তারপর apt-এ dpkg repair, dnf-এ metadata ও history পরীক্ষা, আর pacman-এ full sync ও key verification—এই সঠিক পদ্ধতিই সবচেয়ে নিরাপদ।