## 📦 مدیریت بستهها با Zypper در openSUSE و SUSE Linux Enterprise
**Zypper** ابزار خط فرمان برای مدیریت بستهها و مخازن در توزیعهای مبتنی بر RPM مانند openSUSE و SUSE Linux Enterprise است. این ابزار از قابلیتهای قدرتمند حل وابستگی، مدیریت مخازن و عملیات گروهی پشتیبانی میکند.
---
## 🔧 عملیات پایه با Zypper
### 📥 نصب بسته
```bash
sudo zypper install package-name
```
مثال:
```bash
sudo zypper install vim
```
### ❌ حذف بسته
```bash
sudo zypper remove package-name
```
مثال:
```bash
sudo zypper remove vim
```
### 🔄 بهروزرسانی بستهها
- بهروزرسانی یک بسته خاص:
```bash
sudo zypper update package-name
```
- بهروزرسانی کل سیستم:
```bash
sudo zypper update
```
- بهروزرسانی توزیع (Dist-Upgrade):
```bash
sudo zypper dist-upgrade
```
---
## 🔍 جستجو و مشاهده اطلاعات
### 🔎 جستجوی بسته
```bash
zypper search keyword
```
مثال:
```bash
zypper search nginx
```
### 📖 نمایش اطلاعات بسته
```bash
zypper info package-name
```
مثال:
```bash
zypper info vim
```
---
## 📑 مدیریت مخازن (Repositories)
### 📋 لیست مخازن فعال
```bash
zypper repos
```
### ➕ افزودن مخزن جدید
```bash
sudo zypper addrepo URL alias
```
مثال:
```bash
sudo zypper addrepo https://download.opensuse.org/repositories/server:database/openSUSE_Leap_15.3/ database
```
### 🔄 بروزرسانی اطلاعات مخازن
```bash
sudo zypper refresh
```
### ➖ غیرفعال/فعال کردن مخزن
```bash
sudo zypper modifyrepo --disable alias
sudo zypper modifyrepo --enable alias
```
---
## 🔗 مدیریت بستههای قفلشده (Locks)
برای جلوگیری از بهروزرسانی یا حذف بستهای خاص:
### 🔒 قفل کردن بسته
```bash
sudo zypper addlock package-name
```
### 🔓 باز کردن قفل
```bash
sudo zypper removelock package-name
```
---
## 🛠️ تاریخچه و بازگشت به وضعیت قبلی
### 📜 مشاهده تاریخچه عملیات
```bash
zypper history
```
### ↩️ بازگردانی یک تراکنش
ابتدا با `zypper history` شماره تراکنش را پیدا کنید، سپس:
```bash
sudo zypper undo transaction-number
```
---
## 🧠 نکات حرفهای
- برای نصب گروهی بستهها از فایل لیست:
```bash
sudo zypper install $(cat packages.txt)
```
- استفاده از گزینه `-y` برای تایید خودکار:
```bash
sudo zypper -n install package-name
```
- Zypper به صورت پیشفرض از حل وابستگی هوشمند پشتیبانی میکند؛ نیازی به ابزار جداگانه نیست.
---
## 📌 چکلیست دستورات Zypper
| عملیات | دستور |
|-------------------|------------------------------------------|
| نصب بسته | `zypper install` |
| حذف بسته | `zypper remove` |
| جستجوی بسته | `zypper search` |
| اطلاعات بسته | `zypper info` |
| بهروزرسانی سیستم| `zypper update` |
| افزودن مخزن | `zypper addrepo` |
| بروزرسانی مخازن | `zypper refresh` |
| قفل بسته | `zypper addlock` |
| بازگردانی تراکنش | `zypper undo` |