~3 دقیقه مطالعه • بروزرسانی ۲۹ بهمن ۱۴۰۴
1. مقدمه
سیستم rpm.versions در cPanel & WHM مسئول مدیریت نصب، حذف و بهروزرسانی بستههای RPM در سیستمهای مبتنی بر Red Hat (AlmaLinux، Rocky، CentOS، CloudLinux) و بستههای DEB در Ubuntu است. این سیستم تضمین میکند که نسخههای صحیح بستههای موردنیاز cPanel همیشه نصب باشند.
فایل اصلی تنظیمات در مسیر زیر قرار دارد:
/usr/local/cpanel/etc/rpm.versions
هشدار: این فایل در هر آپدیت cPanel بازنویسی میشود و نباید مستقیماً ویرایش شود.
برای Override کردن تنظیمات، باید از مسیر زیر استفاده کنید:
/var/cpanel/rpm.versions.d/
فایلهای این پوشه (با پسوند .versions و فرمت YAML) نسبت به فایل اصلی اولویت بالاتری دارند.
2. فایلهای مهم در /var/cpanel/rpm.versions.d/
| فایل | توضیحات | اولویت | توصیه |
|---|---|---|---|
| local.versions | فایل مخصوص ادمین سرور | بالاترین | تنها فایلی که باید دستی ویرایش شود |
| *.versions (third‑party) | فایل افزونهها و توسعهدهندگان | متوسط | ممکن است با هم تداخل داشته باشند |
| /usr/local/cpanel/etc/rpm.versions | فایل پیشفرض cPanel | پایین | فقط خواندنی |
3. ساختار فایل .versions (YAML)
فایلهای Override با فرمت YAML هستند و نسبت به فاصلهگذاری حساساند.
file_format:
version: 2
install_targets: {}
rpm_groups: {}
deferred_settings: {}
deferred_optional: {}
rpm_locations: {}
srpm_sub_packages: {}
srpm_versions: {}
target_settings:
pure-ftpd: unmanaged # مثال
url_templates: {}
بخش مهم برای ما: target_settings
4. وضعیتهای ممکن برای Targetها
| وضعیت | توضیح | کاربرد | هشدار |
|---|---|---|---|
| installed | cPanel بسته را نصب و فعال نگه میدارد | حالت پیشفرض | — |
| uninstalled | cPanel بسته را حذف میکند | وقتی سرویس را نمیخواهید | — |
| unmanaged | cPanel هیچ دخالتی نمیکند | وقتی خودتان مدیریت میکنید | خطرناک: ممکن است آپگریدها را بلاک کند |
هشدارهای unmanaged:
- بسته بهروزرسانی خودکار نمیشود.
- اگر FTP unmanaged باشد، رابط FTP در cPanel ممکن است خراب شود.
- unmanaged کردن MySQL/MariaDB میتواند آپگریدهای آینده را غیرممکن کند.
5. اسکریپت update_local_rpm_versions
برای جلوگیری از خطاهای YAML، از این اسکریپت استفاده کنید.
افزودن یا ویرایش Target:
/usr/local/cpanel/scripts/update_local_rpm_versions --edit target_settings.pure-ftpd unmanaged
حذف Override:
/usr/local/cpanel/scripts/update_local_rpm_versions --del target_settings.pure-ftpd
اعمال تغییرات:
/usr/local/cpanel/scripts/check_cpanel_pkgs --fix6. مثالهای کاربردی
غیرفعال کردن Pure‑FTPd (unmanaged):
/usr/local/cpanel/scripts/update_local_rpm_versions --edit target_settings.pure-ftpd unmanaged
/usr/local/cpanel/scripts/update_local_rpm_versions --edit target_settings.proftpd unmanaged
/usr/local/cpanel/scripts/check_cpanel_pkgs --fix
حذف ClamAV (uninstalled):
/usr/local/cpanel/scripts/update_local_rpm_versions --edit target_settings.clamav uninstalled
/usr/local/cpanel/scripts/check_cpanel_pkgs --fix
بازگرداندن به حالت پیشفرض cPanel:
/usr/local/cpanel/scripts/update_local_rpm_versions --del target_settings.clamav
/usr/local/cpanel/scripts/check_cpanel_pkgs --fix
7. نکات طلایی
- هرگز فایل
/usr/local/cpanel/etc/rpm.versionsرا ویرایش نکنید. - افزونههای third‑party ممکن است روی یک target تداخل ایجاد کنند.
- local.versions بالاترین اولویت را دارد.
- با unmanaged بسیار محتاط باشید؛ ممکن است آپگریدها را مختل کند.
8. نتیجهگیری
سیستم rpm.versions یک ابزار قدرتمند برای کنترل مدیریت بستهها در cPanel & WHM است. با استفاده از فایلهای Override و اسکریپت update_local_rpm_versions میتوانید رفتار بستهها را بدون خطر از دست رفتن تنظیمات سفارشی کنترل کنید. همیشه از بهترین روشها پیروی کنید و فقط در مواقع ضروری از unmanaged استفاده کنید.
نوشته و پژوهش شده توسط دکتر شاهین صیامی