| RPMBUILD(1) | General Commands Manual | RPMBUILD(1) |
نام (NAME)
rpmbuild - ساخت بستههای RPM
خلاصه دستور (SYNOPSIS)
rpmbuild -bSTAGE [options] SPEC_FILE ...
rpmbuild -rSTAGE [options] SOURCE_PACKAGE ...
rpmbuild -tSTAGE [options] TAR_ARCHIVE ...
rpmbuild {--rebuild|--recompile} [options] SOURCE_PACKAGE ...
توضیحات (DESCRIPTION)
دستور rpmbuild برای ساخت بستههای نرمافزاری در قالب RPM بهصورت خودکار و تکرارپذیر استفاده میشود.
یک بسته شامل بایگانیای از فایلها و فرادادههایی است که برای نصب و حذف فایلهای بایگانی استفاده میشوند. این فراداده شامل اسکریپتهای کمکی، مشخصههای فایل و اطلاعات توصیفی دربارهٔ بسته است.
بستهها در دو نوع ارائه میشوند: بستههای باینری، که برای دربرگرفتن نرمافزار جهت نصب به کار میروند، و بستههای منبع، که شامل کد منبع و دستورالعمل لازم برای تولید بستههای باینری هستند.
عملیاتها (OPERATIONS)
-bSTAGE
-rSTAGE
-tSTAGE
--rebuild, --recompile
بستهها در چهار فاز ساخته میشوند: تجزیه (parse)، ساخت (build)، سرهمبندی (assembly) و پاکسازی (cleanup). دو فاز میانی خود به مراحل (stages) که در زیر فهرست شدهاند تقسیم میشوند و میتوان آنها را بهطور جداگانه ساخت. ساخت یک STAGE به معنای اجرای تمامی مراحل پیشین تا (و شامل) مرحلهٔ مشخصشده است، مگر اینکه خلاف آن ذکر شده باشد.
مراحل سرهمبندی (Assembly stages)
مراحل سرهمبندی بستهها را تولید میکنند و شیوهٔ اصلی تعامل با rpmbuild هستند. اگر تردید دارید، یکی از اینها را انتخاب کنید.
a
b
r
s
مراحل ساخت (Build stages)
مراحل ساخت، مصنوعات مورد نیاز برای بستهبندی را تولید میکنند؛ این کار معمولاً از طریق اعمال وصله و کامپایل کردن منابع و نصب باینریها در buildroot انجام میشود. این مراحل عموماً با بخشهایی از spec مانند %prep، %build یا %install مطابقت دارند، اما برخی از آنها ضمنی هستند.
ساخت این مراحل بهصورت جداگانه معمولاً فقط هنگام بستهبندی نرمافزارهای جدید در قالب RPM و/یا عیبیابی مفید است. آنها بر اساس ترتیب اجرا در زیر آورده شدهاند و بخش متناظر در spec در صورت وجود درون پرانتز آمده است.
p (%prep)
d (%generate_buildrequires)
f (%conf)
c (%build)
i (%install and %check)
l
آرگومانها (ARGUMENTS)
SPEC_FILE
SOURCE_PACKAGE
TAR_ARCHIVE
گزینهها (OPTIONS)
--build-in-place
--clean
--nobuild
--nocheck
--noclean
--nodebuginfo
--nodeps
--noprep
--rmsource
--rmspec
--rpmfcdebug
--scm=SCM
--short-circuit
--with OPTION
--without OPTION
برای گزینههای مشترک بین تمامی عملیاتها، rpm-common(8) را ببینید.
وابستگیهای پویای ساخت (DYNAMIC BUILD DEPENDENCIES)
هنگامی که مرحلهٔ %generate_buildrequires اجرا میشود و برخی از نیازمندیهای BuildRequires تازه ایجادشده ارضا نشده باشند، rpmbuild یک بستهٔ منبع میانی با پسوند buildreqs.nosrc.rpm ایجاد میکند که دارای BuildRequiresهای جدید است و با کد 11 خارج میشود. سپس میتوان از این بسته به جای بستهٔ منبع اصلی برای حل و نصب وابستگیهای ساخت مفقود به روش همیشگی، مانند استفاده از dnf-builddep(8)، استفاده کرد.
ممکن است چندین لایه از وابستگیهای پویای ساخت در یک فایل spec وجود داشته باشد؛ حضور BuildRequiresهای مشخص در سیستم ممکن است دفعهٔ بعدی که ساختی با همان بستهٔ منبع انجام میشود، منجر به ایجاد BuildRequiresهای جدید شود. سادهترین راه برای اطمینان از ارضای تمامی وابستگیهای پویای ساخت، اجرای گزینهٔ -br، نصب وابستگیهای جدید بستهٔ buildreqs.nosrc.rpm و تکرار کل این رویه تا زمانی است که دیگر rpmbuild با کد 11 خارج نشود.
اگر گزینهٔ -br همراه با --nodeps استفاده شود، کد خروج 11 همیشه بازگردانده میشود و یک بستهٔ buildreqs.nosrc.rpm همیشه ایجاد خواهد شد.
محیط (ENVIRONMENT)
RPM_BUILD_NCPUS
وضعیت خروج (EXIT STATUS)
در صورت موفقیت 0، و در غیر این صورت یک کد خطای غیرصفر بازگردانده میشود.
بستههای دارای بخش %generate_buildrequires در صورت وجود وابستگیهای پویای ساخت (DYNAMIC BUILD DEPENDENCIES) ارضانشده، با کد 11 بازخواهند گشت.
مثالها (EXAMPLES)
rpmbuild --rebuild hello-1.0-1.src.rpm
rpmbuild -bb --nocheck --with openssl hello.spec
rpmbuild -ta hello-2.0.tar.gz
rpmbuild -bc hello.spec
rpmbuild -bi --short-circuit hello.spec
فایلها (FILES)
rpm-common(8) را ببینید.
همچنین ببینید (SEE ALSO)
gendiff(1), popt(3), rpm(8), rpm-common(8), rpmbuild-config(5), rpm2cpio(1), rpmkeys(8), rpmspec(1), rpmsign(1), rpm-setup-autosign(1) rpm-macros(7)
| 2026-03-06 | RPM 6.0.1 |