## 📦 مدیریت بستهها با DPKG در Debian و Ubuntu
در دنیای توزیعهای Debian-based مثل Ubuntu، ابزار اصلی برای مدیریت بستههای `.deb` ابزار قدرتمند **dpkg** است. این ابزار زیرساخت اصلی نصب بستههاست و APT یا apt-get نیز در لایه بالاتر از آن استفاده میکنند.
---
## 🔧 نصب بسته با DPKG
برای نصب بستهای که فایل `.deb` آن را در اختیار دارید:
```bash
sudo dpkg -i package-name.deb
```
مثال:
```bash
sudo dpkg -i google-chrome-stable_current_amd64.deb
```
🔹 اگر در هنگام نصب با خطای وابستگی مواجه شدید، دستور زیر را برای رفع آن اجرا کنید:
```bash
sudo apt-get install -f
```
این کار بستههای لازم را نصب و نصب ناقص را کامل میکند.
---
## ❌ حذف بسته
### حذف بدون حذف تنظیمات:
```bash
sudo dpkg -r package-name
```
### حذف کامل همراه با تنظیمات:
```bash
sudo dpkg -P package-name
```
---
## 📄 نمایش اطلاعات بستهها
### بررسی اینکه چه بستههایی نصب هستند:
```bash
dpkg -l
```
### جستجوی نام خاص در لیست نصبشدهها:
```bash
dpkg -l | grep nginx
```
---
## 📂 نمایش محتویات یک بسته نصبشده:
```bash
dpkg -L package-name
```
مثال:
```bash
dpkg -L curl
```
---
## 🔍 بررسی اینکه یک فایل متعلق به کدام بسته است:
```bash
dpkg -S /path/to/file
```
مثال:
```bash
dpkg -S /usr/bin/wget
```
---
## 📦 استخراج محتویات فایل .deb بدون نصب:
اگر فقط میخواهید محتویات یک فایل `.deb` را ببینید یا استخراج کنید:
```bash
dpkg-deb -c package-name.deb # نمایش محتویات
dpkg-deb -x package-name.deb /target/directory # استخراج
```
---
## 🔧 بازسازی یا تعمیر پایگاه داده dpkg
اگر در نصب/حذف بستهها با خطا مواجه شدید، از این دستور برای بازسازی استفاده کنید:
```bash
sudo dpkg --configure -a
```
این دستور بستههایی که بهصورت ناقص نصب شدهاند را تنظیم و کامل میکند.
---
## 🧪 نصب شبیهسازیشده (Dry Run) — پیشرفته
🔸 توجه: `dpkg` بهصورت پیشفرض شبیهسازی نصب ندارد (بر خلاف `apt`)، اما با استفاده از ابزارهایی مانند `fakeroot` یا `chroot` میتوان محیط تست ایجاد کرد (در صورت تمایل میتونم این بخش رو پیشرفتهتر برات بنویسم).
---
## 📌 چکلیست مهمترین دستورات DPKG
| عملیات | دستور |
|--------|--------|
| نصب بسته | `dpkg -i package.deb` |
| حذف بسته (تنظیمات باقی میماند) | `dpkg -r package` |
| حذف کامل با تنظیمات | `dpkg -P package` |
| لیست همه بستهها | `dpkg -l` |
| لیست فایلهای داخل بسته نصبشده | `dpkg -L package` |
| پیدا کردن بسته مالک فایل | `dpkg -S /path/to/file` |
| تعمیر نصبهای ناقص | `dpkg --configure -a` |
---
## 💬 جمعبندی
ابزار `dpkg` یکی از پایهایترین ابزارهای مدیریت بسته در سیستمهای Debian و Ubuntu است. برای نصب سریع و مستقیم فایلهای `.deb` بسیار کاربردی است، اما چون وابستگیها را بررسی نمیکند، برای کاربران تازهکار پیشنهاد میشود از `apt` استفاده کنند.