موزش ساخت و نصب RPMهای سفارشی در سیستم‌های Red‑Hat

این مقاله نحوهٔ ساخت و نصب RPMهای سفارشی در سیستم‌های مبتنی بر Red‑Hat برای cPanel & WHM را توضیح می‌دهد. شامل پیش‌نیازها، فعال‌سازی devel target، نصب SRPM، ویرایش فایل .spec، ساخت RPM جدید، نصب نسخهٔ سفارشی و جلوگیری از بازنویسی آن توسط آپدیت‌های cPanel است.

SRPM rebuildRed‑Hat cPanel RPMcustom RPM build

~3 دقیقه مطالعه • بروزرسانی ۲۵ بهمن ۱۴۰۴

1. مقدمه


سیستم cPanel & WHM بسیاری از وابستگی‌های نرم‌افزاری خود را به‌صورت RPM ارائه می‌دهد. برای سفارشی‌سازی این بسته‌ها در سیستم‌های Red‑Hat، باید RPM را دوباره بسازید و سپس نصب کنید. این روش معمولاً برای سفارشی‌سازی‌هایی مانند Roundcube استفاده می‌شود.


نکته: RPM فقط روی سیستم‌های Red‑Hat کار می‌کند و نصب آن نیازمند دسترسی SSH با کاربر root است.


2. پیش از شروع


2.1 نصب بسته rpm-build

برای نصب، دستور زیر را اجرا کنید:


yum install rpm-build

2.2 فعال‌سازی devel target برای cPanel

برای فعال‌سازی و به‌روزرسانی target توسعه، دستورات زیر را اجرا کنید:


/scripts/update_local_rpm_versions --edit target_settings.cpanel-devel installed
/scripts/check_cpanel_pkgs --targets cpanel-devel --fix

برخی RPMهای cPanel ممکن است به بسته‌های اضافی نیاز داشته باشند که به‌صورت پیش‌فرض نصب نمی‌شوند.


2.3 نصب پیش‌نیازهای RPM

پیش‌نیازها در فایل .spec مشخص شده‌اند:


  • BuildRequires: — بسته‌های لازم برای ساخت
  • Requires: — بسته‌های لازم برای نصب

مثال:

BuildRequires: cpanel-mysql >= 8.0.20

2.4 بررسی نصب بودن پیش‌نیازها

دستور زیر را اجرا کنید:


/scripts/sysup

اگر همهٔ بسته‌ها نصب باشند، پیام All Needed RPMS are installed نمایش داده می‌شود.


3. ساخت و نصب RPM سفارشی


3.1 ایجاد فایل .rpmmacros

فایل /root/.rpmmacros را ایجاد کرده و محتوای زیر را در آن قرار دهید:


%_topdir /root/rpmbuild
# enable debug RPM package by commenting this out.
%debug_package %{nil}

3.2 ایجاد ساختار دایرکتوری موردنیاز

دایرکتوری‌های زیر باید وجود داشته باشند:


/root/rpmbuild/BUILD
/root/rpmbuild/SPECS
/root/rpmbuild/SOURCES
/root/rpmbuild/BUILDROOT
/root/rpmbuild/RPMS
/root/rpmbuild/SRPMS

یا از دستور زیر استفاده کنید:


mkdir -p /root/rpmbuild/BUILD /root/rpmbuild/SPECS /root/rpmbuild/SOURCES /root/rpmbuild/BUILDROOT /root/rpmbuild/RPMS /root/rpmbuild/SRPMS

مهم: نام دایرکتوری‌ها باید دقیقاً با حروف بزرگ نوشته شوند.


3.3 نصب SRPM

برای نصب SRPM از دستور زیر استفاده کنید:


rpm -Uvh http://httpupdate.cpanel.net/RPM/11.42/src/cpanel-php54-5.4.23-4.cp1142.src.rpm

این کار باعث می‌شود:

  • فایل .spec → در /root/rpmbuild/SPECS/
  • سورس‌ها و پچ‌ها → در /root/rpmbuild/SOURCES/

3.4 ویرایش فایل .spec

فایل .spec را ویرایش کنید و تنظیمات دلخواه را اضافه کنید.


نمونه‌ای از بخش پیکربندی:

%configure --prefix=%{_prefix} \
 --with-libdir=%{_lib} \
 --verbose \
 --enable-static \
 --with-mcrypt=%{_3rdparty_prefix} \
 --with-iconv --enable-mbstring \
 --with-gd \
 --enable-soap \
 --enable-mbregex \
 --with-imap-ssl --with-imap=%{_3rdparty_libdir}/imap/

3.5 ساخت RPM

برای ساخت RPM دستور زیر را اجرا کنید:


rpmbuild -bb /root/rpmbuild/SPECS/php.spec

فایل RPM ساخته‌شده در مسیر زیر قرار می‌گیرد:


/root/rpmbuild/RPMS/

3.6 نصب RPM سفارشی

برای نصب نسخهٔ جدید:


rpm -Uvh cpanel-php54-5.4.23-4.cp1142.x86_64.rpm --force

4. جلوگیری از بازنویسی توسط آپدیت‌های cPanel


هشدار: این مرحله اختیاری است اما ممکن است باعث توقف آپدیت‌های آینده شود.


برای ثبت RPM سفارشی در لیست نسخه‌های محلی:


/scripts/update_local_rpm_versions --add srpm_versions.cpanel-php54 5.4.23-4.cp1142

برای بررسی:


/var/cpanel/rpm.versions.d/local.versions

5. بازگشت به نسخهٔ اصلی cPanel


برای حذف نسخهٔ سفارشی:


/scripts/update_local_rpm_versions --del srpm_versions.cpanel-php54

برای نصب مجدد نسخهٔ رسمی:


/scripts/check_cpanel_pkgs

نتیجه‌گیری


ساخت و نصب RPMهای سفارشی در سیستم‌های Red‑Hat به شما امکان می‌دهد وابستگی‌های cPanel & WHM را مطابق نیاز خود تغییر دهید. با رعایت مراحل این راهنما می‌توانید به‌صورت ایمن و کنترل‌شده RPMهای سفارشی را بسازید و مدیریت کنید.


نوشته و پژوهش شده توسط دکتر شاهین صیامی