RPMSIGN(1) General Commands Manual RPMSIGN(1)

rpmsign - امضای بسته‌های RPM

rpmsign {--addsign|--resign} [options] [sign-options] PACKAGE_FILE ...

rpmsign --delsign [options] PACKAGE_FILE ...

rpmsign --delfilesign [options] PACKAGE_FILE ...

دستور rpmsign برای دستکاری و مدیریت امضاهای دیجیتال OpenPGP بر روی فایل‌های بستهٔ rpm به کار می‌رود.

برای ایجاد یک امضا، rpmsign باید مجموع مقابله‌ای (checksum) بسته را تأیید کند. در نتیجه، بسته‌های V4 با مجموع مقابله‌ای MD5/SHA1 نمی‌توانند در حالت FIPS امضا شوند.

--addsign

تولید و درج یک امضای OpenPGP جدید برای هر PACKAGE_FILE مشخص‌شده، مگر اینکه امضایی با پارامترهای یکسان از قبل وجود داشته باشد که در این صورت هیچ اقدامی انجام نمی‌شود. تعداد دلخواهی از امضاهای V6 را می‌توان اضافه کرد.

--resign

یک امضای OpenPGP جدید برای هر PACKAGE_FILE تولید و درج می‌کند، و جایگزین هرگونه امضای قبلی می‌شود.

--delsign

حذف تمامی امضاهای OpenPGP از هر PACKAGE_FILE بستهٔ داده‌شده.

--delfilesign

حذف تمامی امضاهای فایل IMA و fsverity از هر PACKAGE_FILE بستهٔ داده‌شده.

PACKAGE_FILE

یک فایل بستهٔ rpm.

برای مشاهدهٔ گزینه‌های مشترک بین تمامی برنامه‌های اجرایی rpm، به rpm-common(8) مراجعه کنید.

--certpath CERT

همراه با --signverity استفاده می‌شود؛ استفاده از گواهی امضای فایل CERT.

--fskpath KEY

همراه با --signfiles استفاده می‌شود؛ استفاده از کلید امضای فایل KEY.

--key-id KEYID

استفاده از کلید KEYID برای امضا کردن. پیکربندی %_openpgp_sign_id را لغو و بازنویسی می‌کند.

--rpmv3

درخواست افزودن امضای سرایند+بارمحتوا (header+payload) نسخهٔ RPM V3 بر روی بسته‌های V4. این امضاها پرهزینه و بار اضافی زائدی روی بسته‌هایی هستند که در آن‌ها چکیدهٔ بارمحتوای مجزا وجود دارد (بسته‌های ساخته‌شده با rpm >= 4.14). دستور Rpmsign نیاز به امضاهای V3 را به‌طور خودکار تشخیص می‌دهد، اما در صورتی که بسته‌ها باید برای نسخه‌های rpm < 4.14 یا دیگر دلایل تعامل‌پذیری کاملاً قابل اعتبارسنجی باشند، می‌توان از این گزینه برای درخواست ایجاد آن‌ها استفاده کرد.

هنگام امضای بسته‌های V6 هیچ اثری ندارد.

--rpmv4

درخواست افزودن امضای سرایند RPM V4 بر روی بسته‌های V6. برای این که امضای بسته‌های V6 توسط نسخه‌های rpm 4.x قابل اعتبارسنجی باشند، مفید است.

امضاهای سازگاری V4 تنها زمانی اضافه می‌شوند که الگوریتم امضا یکی از الگوریتم‌های شناخته‌شده برای V4 باشد: RSA،‏ EcDSA،‏ EdDSA (و DSA اولیه). تنها یک امضای V4 می‌تواند در یک بسته وجود داشته باشد، بنابراین این گزینه فقط در اولین اجرای --addsign با یک الگوریتم سازگار با V4 اعمال شده و در غیر این صورت نادیده گرفته می‌شود.

هنگام امضای بسته‌های V4 هیچ اثری ندارد.

--rpmv6

درخواست افزودن امضای سرایند RPM V6 بر روی بسته‌های V4.

این دستور عموماً همیشه موفقیت‌آمیز است زیرا می‌تواند تعداد دلخواهی از امضاهای V6 بر روی یک بسته وجود داشته باشد. امضاهای سازگاری V3/V4 با استفاده از همان منطق --rpmv4 بر روی یک بستهٔ V6 اضافه می‌شوند.

هنگام امضای بسته‌های V6 هیچ اثری ندارد.

--signfiles

امضای فایل‌های بسته. کلید امضای فایل (کلید خصوصی RSA) باید پیش از امضای بسته تنظیم شده باشد؛ این کلید را می‌توان در خط فرمان با --fskpath یا ماکروی %_file_signing_key پیکربندی کرد.

--signverity

امضای فایل‌های بسته با امضاهای fsverity. کلید امضای فایل (کلید خصوصی RSA) و گواهی امضا باید پیش از امضای بسته تنظیم شده باشند. کلید را می‌توان در خط فرمان با --fskpath یا ماکروی %_file_signing_key، و گواهی را می‌توان در خط فرمان با --certpath یا ماکروی %_file_signing_cert پیکربندی نمود.

--verityalgo ALG

همراه با --signverity برای تعیین الگوریتم امضا استفاده می‌شود. الگوریتم‌های sha256 و sha512 پشتیبانی می‌شوند، که در صورت مشخص نشدن این آرگومان، sha256 پیش‌فرض است. این مورد را می‌توان با ماکروی %_verity_algorithm نیز مشخص کرد.

به منظور امضای بسته‌ها، باید جفت‌کلید OpenPGP خود (معروف به گواهی) را ایجاد کرده و rpm(8) را برای استفاده از آن پیکربندی کنید. ماکروهای زیر در دسترس هستند:

%_openpgp_sign_id

اثرانگشت (fingerprint) یا keyid کلید امضا که باید استفاده شود. معمولاً این تنها پیکربندی مورد نیاز است. در صورت حذف، --key-id باید هنگام امضا صراحتاً مشخص شود.

%_openpgp_sign

پیاده‌سازی OpenPGP مورد استفاده برای امضا. مقادیر پشتیبانی‌شده عبارتند از "gpg" برای GnuPG (سنتی و پیش‌فرض) و "sq" برای Sequoia PGP.

ماکروهای مختص هر پیاده‌سازی:

%_gpg_path

محل جاکلیدی (keyring) برنامهٔ GnuPG شما در صورتی که مسیر پیش‌فرض $GNUPGHOME نباشد.

%_gpg_name

ماکروی قدیمی برای پیکربندی شناسهٔ کاربری با GnuPG. به‌جای آن از ماکروی مستقل از پیاده‌سازی و بدون ابهام %_openpgp_sign_id استفاده کنید.

%_sq_path

محل پیکربندی Sequoia در صورتی که پیش‌فرض نباشد.

پیکربندی RPM برای امضای بسته‌ها با Sequoia PGP و یک کلید خاص از طریق افزودن محتویات زیر به فایل rpm-config(5) کاربر (معمولاً ~/.config/rpm/macros):

%_openpgp_sign sq
%_openpgp_sign_id 7B36C3EE0CCE86EDBC3EFF2685B274E29F798E08

rpmsign --addsign hello-2.0-1.x64_rpm

افزودن یک امضا به بستهٔ hello-2.0-1.x64_rpm.

rpmsign --resign --key-id 771b18d3d7baa28734333c424344591e1964c5fc hello-2.0-1.x64_rpm

جایگزینی تمامی امضاها در بستهٔ hello-2.0-1.x64_rpm با یک امضا با استفاده از کلید 771b18d3d7baa28734333c424344591e1964c5fc.

rpmsign --delsign --delfilesign hello-2.0-1.x64_rpm

حذف تمامی امضاها از بستهٔ hello-2.0-1.x64_rpm.

در صورت موفقیت، مقدار 0 برگردانده می‌شود، و در غیر این صورت یک کد خطای غیرصفر بازگردانده خواهد شد.

popt(3)، rpm(8)، rpm-common(8)، rpmkeys(8)، rpmbuild(1)

rpmsign --help - از آنجا که rpm از سفارشی‌سازی گزینه‌ها از طریق نام‌های مستعار popt پشتیبانی می‌کند، تضمین این که آنچه در دفترچه راهنما توضیح داده شده با آنچه در دسترس است مطابقت داشته باشد، غیرممکن است.

http://www.rpm.org

2026-03-06 RPM 6.0.1