.\" Generated by scdoc 1.11.4 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "RPMBUILD" "1" "2026-03-06" "RPM 6.0.1" .PP .SH "نام (NAME)" rpmbuild \- ساخت بسته‌های RPM .PP .SH "خلاصه دستور (SYNOPSIS)" \fBrpmbuild\fR \fB-b\fR​\fISTAGE\fR [options] \fISPEC_FILE\fR .\&.\&.\& .PP \fBrpmbuild\fR \fB-r\fR​\fISTAGE\fR [options] \fISOURCE_PACKAGE\fR .\&.\&.\& .PP \fBrpmbuild\fR \fB-t\fR​\fISTAGE\fR [options] \fITAR_ARCHIVE\fR .\&.\&.\& .PP \fBrpmbuild\fR {\fB--rebuild\fR|\fB--recompile\fR} [options] \fISOURCE_PACKAGE\fR .\&.\&.\& .PP .SH "توضیحات (DESCRIPTION)" دستور \fBrpmbuild\fR برای ساخت بسته‌های نرم‌افزاری در قالب RPM به‌صورت خودکار و تکرارپذیر استفاده می‌شود.\& .PP یک \fIبسته\fR شامل بایگانی‌ای از فایل‌ها و فراداده‌هایی است که برای نصب و حذف فایل‌های بایگانی استفاده می‌شوند.\& این فراداده شامل اسکریپت‌های کمکی، مشخصه‌های فایل و اطلاعات توصیفی دربارهٔ بسته است.\& .PP بسته‌ها در دو نوع ارائه می‌شوند: بسته‌های باینری، که برای دربرگرفتن نرم‌افزار جهت نصب به کار می‌روند، و بسته‌های منبع، که شامل کد منبع و دستورالعمل لازم برای تولید بسته‌های باینری هستند.\& .PP .SH "عملیات‌ها (OPERATIONS)" \fB-b\fR​\fISTAGE\fR .RS 4 ساخت مرحلهٔ \fISTAGE\fR از روی یک فایل spec.\& .PP .RE \fB-r\fR​\fISTAGE\fR .RS 4 ساخت مرحلهٔ \fISTAGE\fR از روی یک بستهٔ منبع RPM.\& .PP .RE \fB-t\fR​\fISTAGE\fR .RS 4 ساخت مرحلهٔ \fISTAGE\fR از روی یک بایگانی \fBtar\fR(5).\& .PP .RE \fB--rebuild\fR, \fB--recompile\fR .RS 4 نام‌های مستعار سازگاری برای \fB-ra\fR.\& .PP .RE بسته‌ها در چهار فاز ساخته می‌شوند: تجزیه (parse)، ساخت (build)، سرهم‌بندی (assembly) و پاک‌سازی (cleanup).\& دو فاز میانی خود به \fIمراحل\fR (stages) که در زیر فهرست شده‌اند تقسیم می‌شوند و می‌توان آن‌ها را به‌طور جداگانه ساخت.\& ساخت یک \fISTAGE\fR به معنای اجرای تمامی مراحل پیشین تا (و شامل) مرحلهٔ مشخص‌شده است، مگر اینکه خلاف آن ذکر شده باشد.\& .PP .SS "مراحل سرهم‌بندی (Assembly stages)" مراحل سرهم‌بندی بسته‌ها را تولید می‌کنند و شیوهٔ اصلی تعامل با \fBrpmbuild\fR هستند.\& اگر تردید دارید، یکی از این‌ها را انتخاب کنید.\& .PP \fBa\fR .RS 4 ساخت هر دو نوع بستهٔ منبع و باینری.\& این یک مرحلهٔ واقعی نیست بلکه ترکیبی از \fBb\fR و \fBs\fR است، با این تفاوت که بسته‌های ساخته‌شده با این روش دارای یک «کوکی» هستند تا نشان دهند از یک ساخت مشترک آمده‌اند.\& در صورت موفقیت، دایرکتوری ساخت حذف می‌شود.\& .PP .RE \fBb\fR .RS 4 ساخت تنها بسته‌های باینری.\& در صورت موفقیت، دایرکتوری ساخت حذف می‌شود.\& .PP .RE \fBr\fR .RS 4 ساخت تنها بستهٔ منبع، همراه با بررسی وابستگی‌های پویای ساخت.\& پیش از ایجاد یک بسته، مراحل \fB%prep\fR و \fB%generate_buildrequires\fR را اجرا می‌کند.\& برای جزئیات به بخش \fBوابستگی‌های پویای ساخت (DYNAMIC BUILD DEPENDENCIES)\fR مراجعه کنید.\& .PP .RE \fBs\fR .RS 4 ساخت تنها بستهٔ منبع.\& هیچ مرحلهٔ ساختی اجرا نمی‌شود.\& .PP .RE .SS "مراحل ساخت (Build stages)" مراحل ساخت، مصنوعات مورد نیاز برای بسته‌بندی را تولید می‌کنند؛ این کار معمولاً از طریق اعمال وصله و کامپایل کردن منابع و نصب باینری‌ها در buildroot انجام می‌شود.\& این مراحل عموماً با بخش‌هایی از spec مانند \fB%prep\fR، \fB%build\fR یا \fB%install\fR مطابقت دارند، اما برخی از آن‌ها ضمنی هستند.\& .PP ساخت این مراحل به‌صورت جداگانه معمولاً فقط هنگام بسته‌بندی نرم‌افزارهای جدید در قالب RPM و/یا عیب‌یابی مفید است.\& آن‌ها بر اساس ترتیب اجرا در زیر آورده شده‌اند و بخش متناظر در spec در صورت وجود درون پرانتز آمده است.\& .PP \fBp\fR (%prep) .RS 4 استخراج منابع از حالت فشرده و اعمال هرگونه وصله.\& .PP .RE \fBd\fR (%generate_buildrequires) .RS 4 بررسی وابستگی‌های پویای ساخت و در صورت مفقود بودن هر یک، ساخت بستهٔ \fIbuildreqs.\&nosrc.\&rpm\fR.\& چیز دیگری ساخته نمی‌شود.\& .PP .RE \fBf\fR (%conf) .RS 4 پیکربندی منابع.\& این مرحله عموماً شامل فرمانی معادل با \fB.\&/configure\fR است.\& .PP .RE \fBc\fR (%build) .RS 4 کامپایل منابع.\& این مرحله عموماً شامل فرمانی معادل با \fBmake\fR است.\& .PP .RE \fBi\fR (%install and %check) .RS 4 نصب باینری‌ها در ریشه ساخت (build root).\& این مرحله عموماً شامل فرمانی معادل با \fBmake install\fR و \fBmake check\fR است.\& .PP .RE \fBl\fR .RS 4 انجام یک «بررسی فهرست» (list check) \- بخش \fB%files\fR از فایل spec از نظر ماکروها بسط داده می‌شود و بررسی‌هایی انجام می‌گیرد تا اطمینان حاصل شود تک‌تک فایل‌ها وجود دارند.\& این عمل نیازمند آن است که قبلاً ساختی تا مرحلهٔ \fB%install\fR انجام شده باشد.\& .PP .RE .SH "آرگومان‌ها (ARGUMENTS)" \fISPEC_FILE\fR .RS 4 یک فایل spec مربوط به RPM.\& .PP .RE \fISOURCE_PACKAGE\fR .RS 4 یک بستهٔ منبع RPM (با پسوند \fI.\&src.\&rpm\fR).\& .PP .RE \fITAR_ARCHIVE\fR .RS 4 یک بایگانی \fBtar\fR(5)، که به‌صورت اختیاری فشرده شده است.\& برای اینکه بتوان آن را مستقیماً با \fBrpmbuild\fR ساخت، بایگانی باید شامل یک فایل spec با نام \fISpecfile\fR یا فایلی با پسوند \fI.\&spec\fR باشد.\& .PP .RE .SH "گزینه‌ها (OPTIONS)" \fB--build-in-place\fR .RS 4 ساخت از روی منابعی که به‌صورت محلی دریافت شده‌اند در دایرکتوری کاری فعلی.\& درخت ساخت به گونه‌ای برپا می‌شود که گویی از \fB%setup\fR استفاده شده است، اما \fB%builddir\fR/\fB%buildsubdir\fR به دایرکتوری کاری فعلی اشاره می‌کند.\& از مرحلهٔ \fB%prep\fR به‌طور کامل صرف‌نظر می‌شود.\& .PP .RE \fB--clean\fR .RS 4 حذف درخت ساخت پس از ایجاد بسته‌ها (پیش‌فرض).\& .PP .RE \fB--nobuild\fR .RS 4 عدم اجرای هیچ‌یک از مراحل ساخت.\& برای آزمایش فایل‌های spec مفید است.\& .PP .RE \fB--nocheck\fR .RS 4 عدم اجرای مرحلهٔ ساخت \fB%check\fR حتی در صورت وجود در spec.\& .PP .RE \fB--noclean\fR .RS 4 عدم اجرای مرحلهٔ ساخت \fB%clean\fR حتی در صورت وجود در spec.\& .PP .RE \fB--nodebuginfo\fR .RS 4 عدم تولید بسته‌های debuginfo.\& .PP .RE \fB--nodeps\fR .RS 4 عدم بررسی و اعتبارسنجی وابستگی‌های ساخت.\& .PP .RE \fB--noprep\fR .RS 4 عدم اجرای مرحلهٔ ساخت \fB%prep\fR حتی در صورت وجود در spec.\& این فرض می‌کند که اجرای دیگری از \fBrpmbuild\fR وجود داشته است که در آن \fB%prep\fR پیش‌تر اجرا شده است.\& .PP .RE \fB--rmsource\fR .RS 4 حذف منابع پس از ساخت (می‌تواند به‌صورت مستقل نیز به کار رود، به عنوان مثال \fBrpmbuild\fR \fB--rmsource foo.\&spec\fR).\& توجه داشته باشید که طبق تعریف، فایل‌های \fBNoSource\fR و \fBNoPatch\fR منبع به شمار نمی‌آیند و بنابراین تحت تأثیر این گزینه قرار نمی‌گیرند.\& .PP .RE \fB--rmspec\fR .RS 4 حذف فایل spec پس از ساخت (می‌تواند به‌صورت مستقل نیز به کار رود، به عنوان مثال \fBrpmbuild\fR \fB--rmspec foo.\&spec\fR).\& .PP .RE \fB--rpmfcdebug\fR .RS 4 چاپ اطلاعات اشکال‌زدایی دربارهٔ رده‌بندی فایل‌ها و تولید وابستگی‌ها.\& .PP .RE \fB--scm\fR=\fISCM\fR .RS 4 انتخاب \fISCM\fR مورد استفاده به همراه \fB%autosetup\fR، اگر موردی در فایل spec تنظیم نشده باشد.\& توجه داشته باشید که تمامی مقادیر \fISCM\fR، به عنوان مثال \fBpatch\fR (پیش‌فرض) و \fBgendiff\fR، \fBgit\fR یا \fBquilt\fR، به‌طور متقابل با سایر وصله‌ها و گزینه‌های قیدشده در خط %autosetup، به‌ویژه گزینهٔ \fB-p\fR\fBN\fR، کار نمی‌کنند.\& .PP .RE \fB--short-circuit\fR .RS 4 پرش مستقیم به مرحلهٔ مشخص‌شده (یعنی رد کردن تمام مراحل منتهی به مرحلهٔ مشخص‌شده).\& تنها با \fB-bc\fR، \fB-bi\fR و \fB-bb\fR معتبر است.\& فقط برای آزمایش‌های محلی کاربرد دارد.\& بسته‌های ساخته‌شده با این روش با یک وابستگی ارضانشدنی علامت‌گذاری خواهند شد تا از استفادهٔ تصادفی آن‌ها جلوگیری شود.\& .PP .RE \fB--with\fR \fIOPTION\fR .RS 4 فعال‌سازی \fIOPTION\fR پیکربندی برای ساخت.\& .PP .RE \fB--without\fR \fIOPTION\fR .RS 4 غیرفعال‌سازی \fIOPTION\fR پیکربندی برای ساخت.\& .PP .RE برای گزینه‌های مشترک بین تمامی عملیات‌ها، \fBrpm-common\fR(8) را ببینید.\& .PP .SH "وابستگی‌های پویای ساخت (DYNAMIC BUILD DEPENDENCIES)" هنگامی که مرحلهٔ \fB%generate_buildrequires\fR اجرا می‌شود و برخی از نیازمندی‌های BuildRequires تازه ایجادشده ارضا نشده باشند، \fBrpmbuild\fR یک بستهٔ منبع میانی با پسوند \fIbuildreqs.\&nosrc.\&rpm\fR ایجاد می‌کند که دارای BuildRequiresهای جدید است و با کد 11 خارج می‌شود.\& سپس می‌توان از این بسته به جای بستهٔ منبع اصلی برای حل و نصب وابستگی‌های ساخت مفقود به روش همیشگی، مانند استفاده از \fBdnf-builddep\fR(8)، استفاده کرد.\& .PP ممکن است چندین لایه از وابستگی‌های پویای ساخت در یک فایل spec وجود داشته باشد؛ حضور BuildRequiresهای مشخص در سیستم ممکن است دفعهٔ بعدی که ساختی با همان بستهٔ منبع انجام می‌شود، منجر به ایجاد BuildRequiresهای جدید شود.\& ساده‌ترین راه برای اطمینان از ارضای تمامی وابستگی‌های پویای ساخت، اجرای گزینهٔ \fB-br\fR، نصب وابستگی‌های جدید بستهٔ \fIbuildreqs.\&nosrc.\&rpm\fR و تکرار کل این رویه تا زمانی است که دیگر \fBrpmbuild\fR با کد 11 خارج نشود.\& .PP اگر گزینهٔ \fB-br\fR همراه با \fB--nodeps\fR استفاده شود، کد خروج 11 همیشه بازگردانده می‌شود و یک بستهٔ \fIbuildreqs.\&nosrc.\&rpm\fR همیشه ایجاد خواهد شد.\& .PP .SH "محیط (ENVIRONMENT)" \fBRPM_BUILD_NCPUS\fR .RS 4 تشخیص خودکار تعداد پردازنده‌ها (CPU) برای استفاده در بخش‌های موازی‌شدهٔ ساخت را بازنویسی می‌کند.\& .PP .RE .SH "وضعیت خروج (EXIT STATUS)" در صورت موفقیت 0، و در غیر این صورت یک کد خطای غیرصفر بازگردانده می‌شود.\& .PP بسته‌های دارای بخش \fB%generate_buildrequires\fR در صورت وجود \fBوابستگی‌های پویای ساخت (DYNAMIC BUILD DEPENDENCIES)\fR ارضانشده، با کد 11 بازخواهند گشت.\& .PP .SH "مثال‌ها (EXAMPLES)" \fBrpmbuild --rebuild hello-1.\&0-1.\&src.\&rpm\fR .RS 4 ساخت بسته‌های باینری و منبع از بستهٔ منبع \fIhello-1.\&0-1.\&src.\&rpm\fR.\& .PP .RE \fBrpmbuild -bb --nocheck --with openssl hello.\&spec\fR .RS 4 ساخت بسته‌های باینری از فایل spec با نام \fIhello.\&spec\fR، با صرف‌نظر از مرحلهٔ \fB%check\fR در صورت وجود و فعال‌سازی پشتیبانی از شرط ساخت \fBopenssl\fR (با فرض اینکه یکی در spec مشخص شده باشد).\& .PP .RE \fBrpmbuild -ta hello-2.\&0.\&tar.\&gz\fR .RS 4 ساخت بسته‌های باینری و منبع از تاربال فشردهٔ \fIhello-2.\&0.\&tar.\&gz\fR، با این فرض که بایگانی شامل یک فایل spec معتبر باشد (برای جزئیات \fITAR_ARCHIVE\fR را ببینید).\& .PP .RE \fBrpmbuild -bc hello.\&spec\fR .RS 4 ساخت \fIhello.\&spec\fR تا و شامل مرحلهٔ \fB%build\fR، یعنی بدون تولید بسته‌های واقعی.\& .PP .RE \fBrpmbuild -bi --short-circuit hello.\&spec\fR .RS 4 تنها اجرای مرحلهٔ \fB%install\fR برای \fIhello.\&spec\fR، با صرف‌نظر از تمام مراحل قبلی.\& این فرض می‌کند که اجرای قبلی حداقل تا مرحلهٔ \fB%build\fR انجام شده است، مثال قبلی را ببینید.\& برای جلوگیری از ساخت مجدد کامل هنگام کار روی بخش \fB%files\fR یک بسته مفید است.\& .PP .RE .SH "فایل‌ها (FILES)" \fBrpm-common\fR(8) را ببینید.\& .PP .SH "همچنین ببینید (SEE ALSO)" \fBgendiff\fR(1), \fBpopt\fR(3), \fBrpm\fR(8), \fBrpm-common\fR(8), \fBrpmbuild-config\fR(5), \fBrpm2cpio\fR(1), \fBrpmkeys\fR(8), \fBrpmspec\fR(1), \fBrpmsign\fR(1), \fBrpm-setup-autosign\fR(1) \fBrpm-macros\fR(7) .PP \fBhttp://www.\&rpm.\&org\fR