## 📦 مدیریت بستهها با APT-GET و APT-CACHE در Debian و Ubuntu
در دنیای لینوکس، یکی از مزایای اصلی استفاده از Debian، Ubuntu و سایر توزیعهای مبتنی بر آنها، ابزار قدرتمند مدیریت بستهها یعنی **APT** است. دو دستور مهم در این زمینه `apt-get` و `apt-cache` هستند که برای نصب، حذف، جستجو و مدیریت بستهها استفاده میشوند.
---
## ✅ تفاوت apt، apt-get و apt-cache
| ابزار | کاربرد |
|------|--------|
| `apt-get` | نصب، حذف، بروزرسانی بستهها – قابل اسکریپتنویسی |
| `apt-cache` | جستجو و مشاهده اطلاعات بستهها |
| `apt` | رابط ترکیبی مدرن و کاربرپسندتر برای هردوی بالا |
🔸 در سیستمهای جدید، توصیه میشود بیشتر از `apt` استفاده شود، ولی در سرورهای کلاسیک یا اسکریپتهای اتوماتیک، `apt-get` و `apt-cache` همچنان پرکاربردند.
---
## 🔧 بروز رسانی مخازن و سیستم
### بروز رسانی لیست بستهها:
```bash
sudo apt-get update
```
### بروز رسانی همه بستههای نصبشده:
```bash
sudo apt-get upgrade
```
### بروز رسانی کامل با حل وابستگیها:
```bash
sudo apt-get dist-upgrade
```
---
## 📥 نصب بسته
```bash
sudo apt-get install package-name
```
مثال:
```bash
sudo apt-get install nginx
```
🔹 برای نصب چند بسته:
```bash
sudo apt-get install nginx git curl
```
---
## ❌ حذف بسته
### حذف بدون پاککردن تنظیمات:
```bash
sudo apt-get remove package-name
```
### حذف کامل همراه با تنظیمات:
```bash
sudo apt-get purge package-name
```
---
## 🧹 پاکسازی و تمیزکاری
### حذف بستههای بلااستفاده:
```bash
sudo apt-get autoremove
```
### حذف کش بستههای دانلودی:
```bash
sudo apt-get clean
```
---
## 🔎 جستجوی بسته با apt-cache
### جستجو در لیست بستهها:
```bash
apt-cache search keyword
```
مثال:
```bash
apt-cache search apache
```
### دریافت اطلاعات بسته:
```bash
apt-cache show package-name
```
مثال:
```bash
apt-cache show nginx
```
---
## 🧠 بررسی وضعیت بستهها
### بررسی اینکه بستهای نصب شده یا نه:
```bash
dpkg -l | grep package-name
```
### بررسی اینکه فایل خاص متعلق به کدام بسته است:
```bash
dpkg -S /path/to/file
```
---
## ⚙️ پیکربندی مخازن
فایل مخازن در این مسیر قرار دارد:
```
/etc/apt/sources.list
```
و پوشهی اضافه:
```
/etc/apt/sources.list.d/
```
🔹 برای افزودن مخزن جدید:
```bash
sudo add-apt-repository ppa:repository-name
sudo apt-get update
```
---
## 🧪 شبیهسازی نصب (بدون اجرا):
```bash
sudo apt-get install --simulate package-name
```
🔹 این دستور فقط بررسی میکنه که نصب چه تاثیری داره، بدون اینکه واقعا چیزی نصب بشه.
---
## 🗂 مثال ترکیبی: نصب و پاکسازی Nginx
```bash
sudo apt-get install nginx
sudo systemctl start nginx
sudo apt-get remove nginx
sudo apt-get purge nginx
sudo apt-get autoremove
```
---
## 📌 چکلیست دستورات مهم
| عملیات | دستور |
|--------|--------|
| بروزرسانی لیست بستهها | `apt-get update` |
| نصب بسته | `apt-get install` |
| حذف بسته | `apt-get remove` / `purge` |
| جستجوی بسته | `apt-cache search` |
| مشاهده اطلاعات | `apt-cache show` |
| پاکسازی فایلها | `apt-get clean` |
| حذف وابستگیهای بلااستفاده | `apt-get autoremove` |
---
## 🎯 نکته نهایی
در نسخههای جدید Ubuntu (مثل ۲۰.۰۴ به بعد)، میتونی بهجای `apt-get` و `apt-cache` فقط از `apt` استفاده کنی:
```bash
sudo apt update
sudo apt install nginx
apt search apache
apt show curl
```