Skip to Content

dpkg

apt আসলে একটি স্মার্ট এসিস্ট্যান্ট যে ইন্টারনেট থেকে ফাইল খুঁজে আনে। আর dpkg হলো সেই কারিগর যে আপনার পিসিতে থাকা কোনো নির্দিষ্ট .deb ফাইল নিয়ে কাজ করে। এটি একটি lower-level টুল।

.deb File Internals

একজন সিকিউরিটি লার্নার হিসেবে আপনার জানা উচিত একটি .deb ফাইলের ভেতরে আসলে কী থাকে। এটি মূলত একটি ar archive (এক প্রকার জিপ ফাইল), যার ভেতরে তিনটি মূল জিনিস থাকে:

  1. debian-binary: এটি একটি টেক্সট ফাইল যা বলে দেয় এটি কোন ভার্সনের ডেবিয়ান প্যাকেজ।
  2. control.tar.xz: এখানে থাকে সব মেটাডাটা— যেমন প্যাকেজের নাম, ভার্সন, এবং সবচেয়ে গুরুত্বপূর্ণ Maintainer Scripts (pre-install, post-install স্ক্রিপ্ট)।
  3. data.tar.xz: এখানে থাকে সেই আসল সফটওয়্যার ফাইলগুলো যা আপনার সিস্টেমে ইন্সটল হবে।

Advanced Inspection (dpkg-deb)

আমরা প্রায়ই ইন্টারনেটে অনেক টুল পাই যেগুলো .deb ফাইল হিসেবে থাকে। কিন্তু কোনো অপরিচিত ফাইল সরাসরি sudo দিয়ে ইন্সটল করা বিপজ্জনক। ইন্সটল করার আগেই ফাইলটি পরীক্ষা করা বুদ্ধিমানের কাজ।

১. ইন্সটল না করেই ফাইল লিস্ট দেখা

সফটওয়্যারটি ইন্সটল হলে আপনার পিসির কোথায় কী ফাইল বসাবে তা দেখতে:

Terminal
dpkg -c package.deb

২. কন্ট্রোল ফাইল বা স্ক্রিপ্ট এক্সট্র্যাক্ট করা

সফটওয়্যারটি ইন্সটল হওয়ার সময় কোনো সিক্রেট কোড বা ম্যালওয়্যার রান করবে কি না তা দেখতে আমরা তার কন্ট্রোল ফাইলগুলো আলাদা করতে পারি:

Terminal
# কন্ট্রোল ফাইলগুলো 'tmp_info' ফোল্ডারে বের করো dpkg-deb -e package.deb tmp_info ls tmp_info

এখানে যদি আপনি postinst বা preinst ফাইল দেখেন, তবে বুঝবেন ইন্সটলেশনের সময় এই স্ক্রিপ্টগুলো রুট (root) পাওয়ার নিয়ে চলবে।

৩. কনটেন্ট এক্সট্র্যাক্ট করা (Extract without Installing)

সিস্টেমে ইন্সটল না করে শুধু ফাইলগুলো কোনো এক জায়গায় বের করে দেখতে:

Terminal
dpkg-deb -x package.deb ./extracted_folder

Common Use Cases

কমান্ডকাজকেন ব্যবহার করবে?
dpkg -iইন্সটল করানতুন ডাউনলোড করা সফটওয়্যারের জন্য।
dpkg -rরিমুভ করাকনফিগ ফাইল রেখে সফটওয়্যার মোছা।
dpkg -Pপার্জ করাএকদম ক্লিন ভাবে সব মোছা।
dpkg -lলিস্ট দেখাসিস্টেমে কী কী ইন্সটল আছে দেখতে।
dpkg -Lলোকেশন দেখাএকটি বিশেষ সফটওয়্যারের ফাইলগুলো কোথায় আছে।

Dependency Resolution

dpkg নিজে থেকে ডিপেন্ডেন্সি (Dependency) হ্যান্ডেল করতে পারে না। যদি এরর দেয়, তবে আপনাকে ম্যানুয়ালি apt ব্যবহার করে তা ফিক্স করতে হবে।

Terminal
# ১. ইন্সটল করার চেষ্টা করো sudo dpkg -i mytool.deb # ২. যদি এরর দেয়, তবে এটি দিয়ে ফিক্স করো sudo apt install -f

CyberSec Note

The Danger of Pre-install Scripts:

অ্যাটাকাররা অনেক সময় এমন .deb প্যাকেজ তৈরি করে যা ইন্সটল হওয়ার সাথে সাথে আপনার ব্যাকগ্রাউন্ডে একটি রিভার্স শেল (Reverse Shell) ওপেন করে দেয়। কারণ dpkg -i কমান্ডটি রুট পাওয়ারে চলে এবং এটি প্যাকেজের ভেতরের স্ক্রিপ্টগুলোকেও রুট পাওয়ার দেয়।

Forensics Tip:
যদি কোনো সন্দেহজনক প্যাকেজ অডিট করতে হয়, তবে সবসময় dpkg-deb -e কমান্ডটি ব্যবহার করে তার ভেতরের স্ক্রিপ্টগুলো আগে পড়ে দেখুন।

Quick Check

  • একটি .deb ফাইলের ভেতরে control.tar.xz এর কাজ কী?
  • ইন্সটল না করে কোনো প্যাকেজের কন্টেন্ট দেখার কমান্ডটি কী?
  • কেন অবিশ্বস্ত সোর্স থেকে .deb ফাইল ইন্সটল করা রিস্কি?
  • dpkg -L nmap কমান্ডটি কেন লিনাক্স ট্রাবলশুটিংয়ে কাজে লাগে?

পরবর্তী → Logs & Monitoring

dpkg linux bangla, deb file install Bengali, dpkg-deb inspect bangla, deb file contents bengali, linux package forensics bangla, dpkg dependency fix

Last updated on