'\" t .TH "SYSUPDATE\&.D" "5" "" "systemd 261.3" "sysupdate.d" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" sysupdate.d \- تعاریف و قالب‌های فایل‌های پیکربندی به‌روزرسانی سیستم .SH "خلاصه دستور (SYNOPSIS)" .PP .RS 4 /etc/sysupdate\&.d/*\&.transfer .RE .RS 4 /run/sysupdate\&.d/*\&.transfer .RE .RS 4 /usr/local/lib/sysupdate\&.d/*\&.transfer .RE .RS 4 /usr/lib/sysupdate\&.d/*\&.transfer .RE .SH "توضیحات (DESCRIPTION)" .PP این فایل‌ها نحوه به‌روزرسانی منابع خاص روی سیستم محلی را از یک منبع دوردست (ریموت) توصیف می‌کنند\&. هر فایل از این دست، یک انتقال را تعریف می‌کند: معمولاً یک منبع دوردست HTTP/HTTPS به عنوان مبدأ؛ و یک فایل، دایرکتوری یا پارتیشن محلی به عنوان مقصد\&. این سازوکار ممکن است به عنوان یک مکانیزم به‌روزرسانی ساده، خودکار و اتمیک برای خود سیستم‌عامل، کانتینرها، سرویس‌های پرتابل (قابل‌حمل) یا ایمیج‌های افزونه سیستم (system extension) استفاده شود \(em اما در واقع می‌توان از آن برای به‌روزرسانی هر نوع فایلی از یک منبع دوردست بهره برد\&. .PP دستور \fBsystemd-sysupdate\fR(8) این فایل‌ها را می‌خواند و از آن‌ها برای تعیین اینکه کدام منابع محلی باید به‌روزرسانی شوند استفاده کرده و سپس به‌روزرسانی را اجرا می‌کند\&. .PP هم منبع دوردست HTTP/HTTPS و هم مقصد محلی معمولاً در چندین نسخه هم‌زمان وجود دارند تا طرح‌های به‌روزرسانی انعطاف‌پذیری مانند به‌روزرسانی A/B (یا مجموعه‌ای گسترده‌تر از آن، مانند A/B/C، A/B/C/D و غیره) را پیاده‌سازی کنند\&. .PP هر فایل *\&.transfer یک انتقال را تعریف می‌کند، یعنی یک منبع را برای به‌روزرسانی توصیف می‌نماید\&. به طور معمول، چندین مورد از این فایل‌ها (یعنی چندین انتقال از این دست) با هم تعریف می‌شوند و با یک شناسه نسخه مشترک به یکدیگر پیوند می‌خورند تا چندین منبع را به طور هم‌زمان در هر عملیات به‌روزرسانی به‌روز کنند؛ به عنوان مثال برای به‌روزرسانی یک هسته (kernel)، یک سیستم فایل ریشه (root) و یک پارتیشن Verity در یک عملیات واحد، ترکیبی و همگام‌سازی‌شده، به طوری که تنها به‌روزرسانی ترکیبی هر سه با هم یک به‌روزرسانی کامل را تشکیل دهد\&. ما چنین مجموعه‌ای از انتقال‌ها را «هدف» (target) می‌نامیم\&. \fBsystemd-sysupdate\fR(8) همیشه روی یک هدف واحد عمل می‌کند\&. .PP انتقال‌ها می‌توانند در مجموعه‌هایی گروه‌بندی شوند که می‌توانند توسط مدیر سیستم به صورت جداگانه فعال یا غیرفعال شوند، که «قابلیت‌های اختیاری» (Optional Features) نامیده می‌شوند: \fBsysupdate.features\fR(5)\&. .PP هر فایل *\&.transfer شامل سه بخش است: [Transfer]، [Source] و [Target]\&. .SH "حالت پایه عملکرد (BASIC MODE OF OPERATION)" .PP به‌روزرسانی‌های سیستم‌عامل مبتنی بر ایمیج دیسک معمولاً شامل چندین منبع مختلف است که باید با هم به‌روزرسانی شوند؛ برای مثال، یک به‌روزرسانی امن سیستم‌عامل ممکن است شامل یک ایمیج سیستم فایل ریشه (root) برای قرار گرفتن در یک پارتیشن، یک ایمیج پارتیشن داده‌های یکپارچگی Verity منطبق، و یک ایمیج هسته آماده‌شده برای بوت شدن در ترکیب این دو پارتیشن باشد\&. دو منبع اول فایل‌هایی هستند که بارگیری شده و در یک پارتیشن دیسک قرار می‌گیرند، و مورد آخر فایلی است که بارگیری شده و در یک فایل معمولی در سیستم فایل بوت (مانند پارتیشن سیستم EFI) قرار می‌گیرد\&. از این رو، در طول به‌روزرسانی یک سیستم‌عامل فرضی به نام "foobarOS" به یک نسخه فرضی ۴۷، عملیات زیر باید انجام شود: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} یک فایل "https://download\&.example\&.com/foobarOS_47\&.root\&.xz" باید بارگیری شده، از حالت فشرده خارج شود و در یک پارتیشن قبلاً استفاده‌نشده با UUID نوع پارتیشن GPT برابر با 4f68bce3\-e8cd\-4db1\-96e7\-fbcaf984b709 برای x86\-64، مطابق با \m[blue]\fBمشخصات پارتیشن‌های قابل‌کشف UAPI\&.2\fR\m[]\&\s-2\u[1]\d\s+2 نوشته شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} به طور مشابه، یک فایل "https://download\&.example\&.com/foobarOS_47\&.verity\&.xz" باید بارگیری شده، از حالت فشرده خارج شود و در یک پارتیشن قبلاً خالی با UUID نوع پارتیشن GPT برابر با 2c7357ed\-ebd2\-46d9\-aec1\-23d437ec2bf5 (یعنی نوع پارتیشن برای اطلاعات یکپارچگی Verity برای سیستم‌های فایل ریشه x86\-64) نوشته شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} در نهایت، یک فایل "https://download\&.example\&.com/foobarOS_47\&.efi" (یک هسته یکپارچه، مطابق با \m[blue]\fBمشخصات بوت‌لودر UAPI\&.1\fR\m[]\&\s-2\u[2]\d\s+2 نوع #2) باید بارگیری شده، از حالت فشرده خارج شود و در سیستم فایل $BOOT، یعنی در EFI/Linux/foobarOS_47\&.efi در پارتیشن ESP یا XBOOTLDR نوشته شود\&. .RE .PP تعمیم مستقل از نسخه این فرآیند به صورت زیر خواهد بود (با استفاده از نشانه ویژه "@v" به عنوان نویسه عام برای شناسه نسخه): .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} انتقال یک فایل "https://download\&.example\&.com/foobarOS_@v\&.root\&.xz" ← یک پارتیشن محلی و قبلاً خالی GPT از نوع 4f68bce3\-e8cd\-4db1\-96e7\-fbcaf984b709، با برچسبی که روی "foobarOS_@v" تنظیم شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} انتقال یک فایل "https://download\&.example\&.com/foobarOS_@v\&.verity\&.xz" ← یک پارتیشن محلی و قبلاً خالی GPT از نوع 2c7357ed\-ebd2\-46d9\-aec1\-23d437ec2bf5، با برچسبی که روی "foobarOS_@v_verity" تنظیم شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} انتقال یک فایل "https://download\&.example\&.com/foobarOS_@v\&.efi" ← یک فایل محلی $BOOT/EFI/Linux/foobarOS_@v\&.efi\&. .RE .PP یک به‌روزرسانی تنها در صورتی می‌تواند کامل شود که نشانی‌های وب مربوطه، منابع خود را برای همان نسخه، یعنی برای همان مقدار "@v" ارائه دهند\&. .PP موارد فوق ممکن است به سه فایل *\&.transfer در sysupdate\&.d/ ترجمه شوند، یکی برای هر منبعی که باید انتقال یابد\&. فایل‌های *\&.transfer نوع بارگیری و مکانی را که بارگیری باید در آن نوشته شود (یعنی در یک پارتیشن یا فایلی در سیستم فایل) پیکربندی می‌کنند\&. مهم‌تر از همه، این فایل‌ها حاوی الگوهای نشانی وب، نام پارتیشن و نام فایلی هستند که در بالا نشان داده شد و نحوه نام‌گذاری این منابع در مبدأ و چگونگی نام‌گذاری آن‌ها در مقصد را توصیف می‌کنند\&. .PP به منظور شمارش نسخه‌های موجود و یافتن گزینه‌های مناسب برای به‌روزرسانی، سازوکاری برای فهرست کردن فایل‌های مناسب لازم است: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} برای پارتیشن‌ها: جدول پارتیشن GPT دربرگیرنده شامل فهرستی از پارتیشن‌های تعریف‌شده، از جمله UUID نوع پارتیشن و برچسب پارتیشن است (در این طرح، برچسب پارتیشن نقشی مشابه با نام فایل برای یک فایل معمولی ایفا می‌کند)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} برای فایل‌های معمولی: فهرست دایرکتوریِ حاوی فایل‌ها، فهرستی از فایل‌های موجود را به شکلی سرراست ارائه می‌دهد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} برای منابع HTTP/HTTPS یک طرح ساده استفاده می‌شود: یک فایل مانیفست SHA256SUMS، پیرو قالب تعریف‌شده توسط \fBsha256sum\fR(1)، نام فایل‌ها و هش‌های SHA256 آن‌ها را فهرست می‌کند\&. .RE .PP انتقال‌ها به ترتیب حروف الفبای نام فایل‌های \&.transfer که در آن‌ها تعریف شده‌اند انجام می‌شوند\&. ابتدا، داده‌های منبع مستقیماً در یک فایل/دایرکتوری/پارتیشن مقصد بارگیری می‌شوند\&. پس از اتمام این کار برای تمام انتقال‌های تعریف‌شده، در مرحله دوم فایل‌ها/دایرکتوری‌ها/پارتیشن‌ها به نام‌های نهایی خود مطابق با \fIMatchPattern=\fR مقصد تغییر نام می‌یابند، باز هم به ترتیبی که نام فایل‌های \&.transfer دیکته می‌کند\&. این مرحله اتمیک نیست، با این حال تضمین می‌شود که دقیقاً به ترتیب و با همگام‌سازی مناسب دیسک اجرا شود\&. به طور معمول، هنگام به‌روزرسانی یک سیستم‌عامل، یکی از انتقال‌ها نقطه ورود (entry point) را هنگام بوت تعریف می‌کند\&. بنابراین، به طور کلی ایده خوبی است که منابع را از طریق نام فایل‌های پیکربندی انتقال مرتب کنید تا نقطه ورود در آخر نوشته شود و اطمینان حاصل شود که هرگونه خاتمه غیرعادی، نقطه ورودی را بر جای نگذارد که پشتیبان آن هنوز ایجاد نشده است\&. در مثال بالا، منطقی است که ایمیج هسته EFI در آخرین مرحله ایجاد شود و بنابراین نام فایل پیکربندی انتقال آن از نظر الفبایی در آخرین جایگاه قرار گیرد\&. .PP برای یک مثال گسترده‌تر و دقیق‌تر بر اساس موارد فوق، به ادامه متن مراجعه کنید\&. .SH "انواع منابع (RESOURCE TYPES)" .PP هر فایل انتقال یک منبع مبدأ را برای انتقال به یک منبع مقصد تعریف می‌کند\&. انواع منابع زیر پشتیبانی می‌شوند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} منابع از نوع "url\-file" یک فایل را روی یک وب‌سرور کپسوله‌سازی می‌کنند که از طریق یک نشانی وب HTTP یا HTTPS به آن ارجاع داده می‌شود\&. هنگامی که به‌روزرسانی انجام می‌شود، فایل بارگیری شده و از حالت فشرده خارج می‌شود و سپس در فایل یا پارتیشن مقصد نوشته می‌شود\&. این نوع منبع فقط برای مبدأها در دسترس است، نه برای مقصدها\&. فهرست نسخه‌های موجودِ منابع از این نوع در فایل‌های مانیفست SHA256SUMS کدگذاری شده است که همراه با امضاهای مجزای SHA256SUMS\&.gpg ارائه می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} نوع منبع "url\-tar" مشابه است، اما فایل باید یک آرشیو \&.tar باشد\&. هنگامی که به‌روزرسانی انجام می‌شود، فایل از حالت فشرده خارج شده و در یک دایرکتوری یا ساب‌والیوم btrfs استخراج می‌شود\&. این نوع منبع فقط برای مبدأها در دسترس است، نه برای مقصدها\&. درست مانند "url\-file"، شمارش نسخه‌های "url\-tar" از فایل‌های SHA256SUMS استفاده می‌کند که از طریق SHA256SUMS\&.gpg احراز اصالت شده‌اند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} نوع منبع "regular\-file" یک فایل معمولی محلی را روی دیسک کپسوله‌سازی می‌کند\&. در طول به‌روزرسانی‌ها، فایل از حالت فشرده خارج شده و در فایل یا پارتیشن مقصد نوشته می‌شود\&. این نوع منبع هم به عنوان مبدأ و هم به عنوان مقصد در دسترس است\&. هنگام به‌روزرسانی، هیچ بررسی یکپارچگی یا احراز اصالتی برای منابع این نوع انجام نمی‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} نوع منبع "partition" مشابه "regular\-file" است و یک پارتیشن GPT را روی دیسک کپسوله‌سازی می‌کند\&. هنگام به‌روزرسانی، پارتیشن باید از قبل وجود داشته باشد و نوع پارتیشن GPT صحیح را داشته باشد\&. پارتیشنی که برچسب پارتیشن GPT آن روی "_empty" تنظیم شده باشد، خالی در نظر گرفته می‌شود و گزینه‌ای برای قرار دادن منبع تازه بارگیری‌شده است\&. پس از به‌روزرسانی یک پارتیشن، از برچسب پارتیشن GPT برای ذخیره اطلاعات نسخه استفاده می‌شود\&. این نوع منبع فقط برای منابع مقصد در دسترس است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} نوع منبع "tar" فایل‌های آرشیو \&.tar محلی را کپسوله‌سازی می‌کند\&. هنگامی که به‌روزرسانی انجام می‌شود، فایل‌ها از حالت فشرده خارج شده و در یک دایرکتوری مقصد یا ساب‌والیوم btrfs استخراج می‌شوند\&. رفتار "tar" و "url\-tar" به طور کلی مشابه است، اما دومی از منابع دوردست بارگیری می‌کند و بررسی‌های یکپارچگی و احراز اصالت را انجام می‌دهد، در حالی که اولی این کار را نمی‌کند\&. نوع منبع "tar" فقط برای منابع مبدأ در دسترس است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} نوع منبع "directory" درخت‌های دایرکتوری محلی را کپسوله‌سازی می‌کند\&. این نوع هم برای منابع مبدأ و هم مقصد در دسترس است\&. اگر به‌روزرسانی روی منبع مبدأ از این نوع انجام شود، یک کپی بازگشتی از دایرکتوری صورت می‌گیرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 7.\h'+01'\c .\} .el \{\ .sp -1 .IP " 7." 4.2 .\} نوع منبع "subvolume" همانند "directory" است، به جز زمانی که به عنوان مقصد استفاده شود؛ در این صورت، اگر سیستم فایل زیرین از آن پشتیبانی کند (یعنی btrfs باشد)، درخت فایل به جای یک دایرکتوری ساده در یک ساب‌والیوم btrfs قرار می‌گیرد\&. .RE .PP همان‌طور که پیش‌تر اشاره شد، تنها زیرمجموعه‌ای از ترکیب‌های انواع منابع مبدأ و مقصد پشتیبانی می‌شوند: .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .B جدول\ \&1.\ \&انواع منابع .TS allbox tab(:); lB lB lB lB lB lB lB lB. T{ شناسه T}:T{ توضیحات T}:T{ قابل استفاده به عنوان مبدأ T}:T{ هنگام استفاده به عنوان مبدأ: مقصدهای سازگار T}:T{ هنگام استفاده به عنوان مبدأ: یکپارچگی + احراز اصالت T}:T{ هنگام استفاده به عنوان مبدأ: فشرده‌زدایی T}:T{ قابل استفاده به عنوان مقصد T}:T{ هنگام استفاده به عنوان مقصد: مبداهای سازگار T} .T& l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l. T{ \fBurl\-file\fR T}:T{ فایل‌های HTTP/HTTPS T}:T{ بله T}:T{ \fBregular\-file\fR، \fBpartition\fR T}:T{ بله T}:T{ بله T}:T{ خیر T}:T{ \- T} T{ \fBurl\-tar\fR T}:T{ آرشیوهای \&.tar تحت HTTP/HTTPS T}:T{ بله T}:T{ \fBdirectory\fR، \fBsubvolume\fR T}:T{ بله T}:T{ بله T}:T{ خیر T}:T{ \- T} T{ \fBregular\-file\fR T}:T{ فایل‌های محلی T}:T{ بله T}:T{ \fBregular\-file\fR، \fBpartition\fR T}:T{ خیر T}:T{ بله T}:T{ بله T}:T{ \fBurl\-file\fR، \fBregular\-file\fR T} T{ \fBpartition\fR T}:T{ پارتیشن‌های GPT محلی T}:T{ خیر T}:T{ \- T}:T{ \- T}:T{ \- T}:T{ بله T}:T{ \fBurl\-file\fR، \fBregular\-file\fR T} T{ \fBtar\fR T}:T{ آرشیوهای \&.tar محلی T}:T{ بله T}:T{ \fBdirectory\fR، \fBsubvolume\fR T}:T{ خیر T}:T{ بله T}:T{ خیر T}:T{ \- T} T{ \fBdirectory\fR T}:T{ دایرکتوری‌های محلی T}:T{ بله T}:T{ \fBdirectory\fR، \fBsubvolume\fR T}:T{ خیر T}:T{ خیر T}:T{ بله T}:T{ \fBurl\-tar\fR، \fBtar\fR، \fBdirectory\fR، \fBsubvolume\fR T} T{ \fBsubvolume\fR T}:T{ ساب‌والیوم‌های btrfs محلی T}:T{ بله T}:T{ \fBdirectory\fR، \fBsubvolume\fR T}:T{ خیر T}:T{ خیر T}:T{ بله T}:T{ \fBurl\-tar\fR، \fBtar\fR، \fBdirectory\fR، \fBsubvolume\fR T} .TE .sp 1 .PP فایل‌های مانیفست SHA256SUMS مورد استفاده توسط انواع منابع "url\-file" و "url\-tar" از همان قالب فایل معمولی تولیدشده توسط ابزار \fBsha256sum\fR(1) گنو پیروی می‌کنند\&. توصیه می‌شود از حالت \fB\-\-binary\fR استفاده شود، حتی اگر این کار اثر واقعی روی سیستم‌های لینوکس نداشته باشد\&. این فهرست فقط باید شامل نویسه‌های اسکی (ASCII) و فقط نام فایل‌های معمولی باشد (یعنی بدون مسیرهای مطلق یا نسبی)\&. اگر فهرست SHA256SUMS شامل فایل ویژه "BEST\-BEFORE\-YYYY\-MM\-DD" باشد (که با سال، ماه و روز پر شده باشد)، در این صورت فهرست فایل پس از تاریخ مشخص‌شده معتبر در نظر گرفته نمی‌شود و انتقال در چنین شرایطی ناموفق خواهد بود\&. این قابلیت ممکن است برای تشخیص تازگی (freshness) فایل مانیفست استفاده شود\&. .SH "الگوهای تطبیق (MATCH PATTERNS)" .PP هم منابع مبدأ و هم منابع مقصد معمولاً در چندین نسخه به طور هم‌زمان وجود دارند\&. عملیات به‌روزرسانی هر زمان که جدیدترین نسخه از نسخه‌های مبدأ، جدیدتر از جدیدترین نسخه از نسخه‌های مقصد باشد انجام می‌شود\&. برای تعیین جدیدترین نسخه از منابع، از فهرست‌بندی دایرکتوری، فهرست‌بندی پارتیشن یا فهرست‌بندی مانیفست استفاده می‌شود، زیرمجموعه‌ای از ورودی‌های واجد شرایط از میان آن‌ها انتخاب می‌گردد، و شناسه نسخه از نام فایل‌ها یا برچسب‌های پارتیشن این ورودی‌های انتخاب‌شده استخراج می‌شود\&. انتخاب زیرمجموعه و استخراج شناسه نسخه (به همراه فراداده‌های احتمالی دیگر) از طریق الگوهای تطبیق انجام می‌شود که در \fIMatchPattern=\fR در بخش‌های [Source] و [Target] پیکربندی می‌گردند\&. این الگوها رشته‌هایی هستند که نحوه نام‌گذاری فایل‌ها یا پارتیشن‌ها را توصیف می‌کنند، همراه با نویسه‌های عام نام‌گذاری‌شده برای فیلدهای خاص مانند شناسه نسخه\&. نویسه‌های عام زیر تعریف شده‌اند: .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .B جدول\ \&2.\ \&نویسه‌های عام الگوی تطبیق .TS allbox tab(:); lB lB lB lB. T{ نویسه عام T}:T{ توضیحات T}:T{ قالب T}:T{ یادداشت‌ها T} .T& l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l. T{ "@v" T}:T{ شناسه نسخه T}:T{ رشته نسخه معتبر T}:T{ اجباری T} T{ "@u" T}:T{ شناسه UUID پارتیشن GPT T}:T{ رشته UUID معتبر ۱۲۸ بیتی T}:T{ فقط در صورتی مرتبط است که نوع منبع مقصد به عنوان \fBpartition\fR انتخاب شده باشد T} T{ "@f" T}:T{ فلگ‌های پارتیشن GPT T}:T{ عدد صحیح هگزادسیمال قالب‌بندی‌شده T}:T{ فقط در صورتی مرتبط است که نوع منبع مقصد به عنوان \fBpartition\fR انتخاب شده باشد T} T{ "@a" T}:T{ فلگ NoAuto پارتیشن GPT T}:T{ یا "0" یا "1" T}:T{ بیت NoAuto از فلگ‌های پارتیشن GPT را مطابق با \m[blue]\fBمشخصات پارتیشن‌های قابل‌کشف UAPI\&.2\fR\m[]\&\s-2\u[1]\d\s+2 کنترل می‌کند؛ فقط در صورتی مرتبط است که نوع منبع مقصد به عنوان \fBpartition\fR انتخاب شده باشد T} T{ "@g" T}:T{ فلگ GrowFileSystem پارتیشن GPT T}:T{ یا "0" یا "1" T}:T{ بیت GrowFileSystem از فلگ‌های پارتیشن GPT را مطابق با \m[blue]\fBمشخصات پارتیشن‌های قابل‌کشف UAPI\&.2\fR\m[]\&\s-2\u[1]\d\s+2 کنترل می‌کند؛ فقط در صورتی مرتبط است که نوع منبع مقصد به عنوان \fBpartition\fR انتخاب شده باشد T} T{ "@r" T}:T{ فلگ فقط‌خواندنی T}:T{ یا "0" یا "1" T}:T{ بیت ReadOnly از فلگ‌های پارتیشن GPT را مطابق با \m[blue]\fBمشخصات پارتیشن‌های قابل‌کشف UAPI\&.2\fR\m[]\&\s-2\u[1]\d\s+2 و سایر فلگ‌های خروجی فقط‌خواندنی کنترل می‌کند، به \fIReadOnly=\fR در زیر مراجعه کنید T} T{ "@t" T}:T{ زمان تغییر فایل T}:T{ عدد صحیح ده‌دهی قالب‌بندی‌شده، میکروثانیه از مبدأ زمان یونیکس (۱ ژانویه ۱۹۷۰) T}:T{ فقط در صورتی مرتبط است که نوع منبع مقصد به عنوان \fBregular\-file\fR انتخاب شده باشد T} T{ "@m" T}:T{ حالت دسترسی به فایل T}:T{ عدد صحیح هشت‌هشتی (اکتال) قالب‌بندی‌شده، به سبک یونیکس T}:T{ فقط در صورتی مرتبط است که نوع منبع مقصد به عنوان \fBregular\-file\fR انتخاب شده باشد T} T{ "@s" T}:T{ اندازه فایل پس از فشرده‌زدایی T}:T{ عدد صحیح ده‌دهی قالب‌بندی‌شده T}:T{ برای اندازه‌گیری پیشرفت و بهبود منطق تخصیص پارتیشن مفید است T} T{ "@d" T}:T{ تلاش‌های انجام‌شده T}:T{ عدد صحیح ده‌دهی قالب‌بندی‌شده T}:T{ هنگام کار با فایل‌های ایمیج هسته مفید است، مطابق با \m[blue]\fBارزیابی خودکار بوت\fR\m[]\&\s-2\u[3]\d\s+2 T} T{ "@l" T}:T{ تلاش‌های باقی‌مانده T}:T{ عدد صحیح ده‌دهی قالب‌بندی‌شده T}:T{ هنگام کار با فایل‌های ایمیج هسته مفید است، مطابق با \m[blue]\fBارزیابی خودکار بوت\fR\m[]\&\s-2\u[3]\d\s+2 T} T{ "@h" T}:T{ هش SHA256 فایل فشرده T}:T{ ۶۴ نویسه هگزادسیمال T}:T{ هش SHA256 فایل فشرده؛ برای \fBurl\-file\fR یا \fBurl\-tar\fR که هش SHA256 از قبل در فایل مانیفست گنجانده شده است مفید نیست T} .TE .sp 1 .PP از میان این نویسه‌های عام، تنها "@v" باید در یک الگوی معتبر وجود داشته باشد، و تمام نویسه‌های عام دیگر اختیاری هستند\&. هر نویسه عام ممکن است حداکثر یک بار در هر الگو استفاده شود\&. یک نویسه عام معمول برای تطبیق ایمیج مبدأ سیستم فایل می‌تواند "MatchPattern=foobar_@v\&.raw\&.xz" باشد، یعنی هر فایلی که نام آن با "foobar_" شروع می‌شود، به دنبال آن یک شناسه نسخه می‌آید و پسوند آن "\&.raw\&.xz" است\&. .PP پیشوند نویسه عام الگوی تطبیق "@" را با پیشوند بسط مشخص‌کننده "%" اشتباه نگیرید\&. اولی بخش متغیری از یک رشته الگوی تطبیق را کپسوله‌سازی می‌کند، در حالی که دومی میان‌برهای ساده‌ای هستند که هنگام تجزیه فایل‌های دراپ‌این بسط می‌یابند\&. برای جزئیات درباره مشخص‌کننده‌ها، به ادامه متن مراجعه کنید\&. .SH "گزینه‌های بخش [TRANSFER] ([TRANSFER] SECTION OPTIONS)" .PP این بخش ویژگی‌های عمومی این انتقال را تعریف می‌کند\&. .PP \fIMinVersion=\fR .RS 4 حداقل نسخه مورد نیاز برای انجام این انتقال را مشخص می‌کند\&. اگر الگوهای مبدأ یا مقصد در این تعریف انتقال با فایل‌های قدیمی‌تر از این نسخه مطابقت داشته باشند، آن‌ها منسوخ تلقی شده و هرگز برای عملیات به‌روزرسانی در نظر گرفته نخواهند شد\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIProtectVersion=\fR .RS 4 یک یا چند رشته نسخه را برای نشانه‌گذاری به عنوان «محافظت‌شده» می‌پذیرد\&. نسخه‌های محافظت‌شده هرگز هنگام ایجاد فضا برای نسخه‌های جدید و به‌روزرسانی‌شده حذف نمی‌شوند\&. این گزینه برای اطمینان از اینکه نسخه سیستم‌عامل در حال بوت (یا منابع کمکی مرتبط با آن) در طول به‌روزرسانی‌ها جایگزین یا رونویسی نمی‌شود تا از خرابی‌های زمان اجرای سیستم فایل جلوگیری شود، مفید است\&. .sp مانند بسیاری از تنظیمات در این فایل‌های پیکربندی، این تنظیم نیز از بسط مشخص‌کننده‌ها پشتیبانی می‌کند\&. تنظیم این گزینه روی یکی از مشخص‌کننده‌های "%A"، "%B" یا "%w" برای ارجاع خودکار به نسخه سیستم‌عامل فعلی سیستم در حال اجرا بسیار مفید است\&. برای جزئیات در مورد مشخص‌کننده‌های پشتیبانی‌شده به ادامه متن مراجعه کنید\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIVerify=\fR .RS 4 یک مقدار بولی می‌پذیرد، پیش‌فرض yes است\&. کنترل می‌کند که آیا منابع بارگیری‌شده به صورت رمزنگاری‌شده تأیید شوند یا خیر (به طور مشخص: اعتبارسنجی امضاهای GPG برای فایل‌های مانیفست SHA256SUMS بارگیری‌شده، از طریق فایل‌های امضای مجزای آن‌ها به نام SHA256SUMS\&.gpg همراه با جاکلیدی سیستم /usr/lib/systemd/import\-pubring\&.pgp یا /etc/systemd/import\-pubring\&.pgp)\&. .sp این گزینه برای ارائه تضمین‌های یکپارچگی برای منابع بارگیری‌شده ضروری است و بنابراین باید به جز در محیط‌های آزمایشی، فعال بماند\&. .sp توجه داشته باشید که فایل‌های بارگیری‌شده بدون قید و شرط در برابر هش‌های SHA256 فهرست‌شده در مانیفست بررسی می‌شوند\&. این گزینه فقط کنترل می‌کند که آیا امضاهای این مانیفست‌ها تأیید می‌شوند یا خیر\&. .sp این گزینه فقط در صورتی تأثیر دارد که نوع منبع مبدأ به عنوان \fBurl\-file\fR یا \fBurl\-tar\fR انتخاب شده باشد، زیرا بررسی یکپارچگی و احراز اصالت فقط برای انتقال از منابع دوردست در دسترس است\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIChangeLog=\fR .RS 4 به صورت اختیاری یک نشانی وب قابل‌نمایش برای انسان به وب‌گاهی حاوی گزارش تغییرات (change-log) منبع در حال به‌روزرسانی را می‌پذیرد\&. .sp این گزینه ممکن است چندین بار در یک تعریف انتقال تنظیم شود\&. در صورت تنظیم چندباره، مقادیر در فهرستی از نشانی‌های وب جمع‌آوری می‌شوند\&. افزودن یک مقدار رشته خالی، فهرست موجود را از تمام مقادیر پاک می‌کند\&. .sp این تنظیم از بسط مشخص‌کننده‌ها پشتیبانی می‌کند\&. برای جزئیات در مورد مشخص‌کننده‌های پشتیبانی‌شده به ادامه متن مراجعه کنید\&. این تنظیم همچنین الگوی نویسه عام "@v" را بسط می‌دهد\&. برای جزئیات به بالا مراجعه کنید\&. .sp در نسخه ۲۵۷ اضافه شد\&. .RE .PP \fIAppStream=\fR .RS 4 به صورت اختیاری یک نشانی وب به یک فایل XML \m[blue]\fBکاتالوگ AppStream\fR\m[]\&\s-2\u[4]\d\s+2 را می‌پذیرد\&. این ممکن است توسط مراکز نرم‌افزاری (مانند نرم‌افزار گنوم یا KDE Discover) برای ارائه فراداده‌های غنی در مورد منابع در حال به‌روزرسانی استفاده شود\&. این شامل نام‌های نمایشی، گزارش‌های تغییرات، نمادها و موارد دیگر است\&. کاتالوگ مشخص‌شده باید شامل \m[blue]\fBفراداده‌های ویژه\fR\m[]\&\s-2\u[5]\d\s+2 باشد تا به درستی توسط مراکز نرم‌افزاری با \fBsystemd-sysupdate\fR(8) مرتبط گردد\&. .sp این تنظیم از بسط مشخص‌کننده‌ها پشتیبانی می‌کند\&. برای جزئیات در مورد مشخص‌کننده‌های پشتیبانی‌شده به ادامه متن مراجعه کنید\&. .sp در نسخه ۲۵۷ اضافه شد\&. .RE .PP \fIFeatures=\fR .RS 4 فهرستی از \fBsysupdate.features\fR(5) جداشده با فاصله که این انتقال بر حسب نام به آن‌ها تعلق دارد\&. این گزینه ممکن است بیش از یک بار مشخص شود که در این صورت فهرست قابلیت‌های مشخص‌شده ادغام می‌شود\&. اگر رشته خالی به این گزینه اختصاص یابد، فهرست بازنشانی شده و تمام انتساب‌های قبلی بی‌اثر خواهند شد\&. برای مثال: "Features=foo bar" مشخص می‌کند که انتقال متعلق به "foo\&.feature" و "bar\&.feature" است\&. .sp اگر فهرست قابلیت‌ها خالی باشد، این انتقال همیشه استفاده می‌شود\&. اگر این انتقال به بیش از یک قابلیت تعلق داشته باشد، در صورتی استفاده خواهد شد که \fIهر یک\fR از قابلیت‌های فهرست‌شده فعال باشد\&. نامی که با یک قابلیت تعریف‌شده مطابقت نداشته باشد، به یک قابلیت ضمنی تبدیل می‌شود که همیشه غیرفعال است\&. .sp در نسخه ۲۵۷ اضافه شد\&. .RE .PP \fIRequisiteFeatures=\fR .RS 4 این گزینه مشابه \fIFeatures=\fR است، با این تفاوت که \fIتمام\fR قابلیت‌های فهرست‌شده در اینجا باید فعال باشند تا این انتقال فعال شود\&. اگر هر دو گزینه مشخص شوند، هر دو اعمال می‌شوند: انتقال تنها در صورتی فعال خواهد شد که تمام قابلیت‌های مشخص‌شده در اینجا فعال باشند و حداقل یک قابلیت فهرست‌شده در \fIFeatures=\fR فعال باشد\&. .sp در نسخه ۲۵۷ اضافه شد\&. .RE .SH "گزینه‌های بخش [SOURCE] ([SOURCE] SECTION OPTIONS)" .PP این بخش ویژگی‌های مبدأ انتقال را تعریف می‌کند\&. .PP \fIType=\fR .RS 4 نوع منبع مبدأ را برای انتقال مشخص می‌کند\&. یکی از مقادیر \fBurl\-file\fR، \fBurl\-tar\fR، \fBtar\fR، \fBregular\-file\fR، \fBdirectory\fR یا \fBsubvolume\fR را می‌پذیرد\&. برای جزئیات درباره انواع منابع، به بالا مراجعه کنید\&. این گزینه اجباری است\&. .sp توجه داشته باشید که تنها ترکیب‌های خاصی از انواع منابع مبدأ و مقصد پشتیبانی می‌شوند؛ به بالا مراجعه کنید\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIPath=\fR .RS 4 محل یافتن نسخه‌های مبدأ این منبع را مشخص می‌کند\&. .sp اگر نوع مبدأ به عنوان \fBurl\-file\fR یا \fBurl\-tar\fR انتخاب شود، این مقدار باید یک نشانی وب HTTP/HTTPS باشد\&. برای دریافت فایل مانیفست، پسوند /SHA256SUMS به نشانی وب افزوده می‌شود، برای دریافت فایل امضای مجزای آن، پسوند /SHA256SUMS\&.gpg افزوده می‌شود، و در صورتی که به‌روزرسانی اجرا شود و منبعی باید بارگیری گردد، نام فایل‌های فهرست‌شده در فایل مانیفست افزوده خواهند شد\&. .sp برای تمام انواع دیگر منابع مبدأ، این مقدار باید یک مسیر محلی در سیستم فایل باشد که به یک دایرکتوری محلی برای یافتن نسخه‌های این منبع اشاره می‌کند\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIMatchPattern=\fR .RS 4 یک یا چند الگوی تطبیق نام فایل را مشخص می‌کند که زیرمجموعه‌ای از فایل‌ها را که گزینه‌های به‌روزرسانی به عنوان مبدأ برای این انتقال هستند، انتخاب می‌نماید\&. برای جزئیات درباره الگوهای تطبیق به بالا مراجعه کنید\&. .sp این گزینه اجباری است\&. هر الگوی فهرست‌شده باید حداقل شامل نویسه عام "@v" باشد تا بتوان شناسه نسخه را از نام فایل استخراج کرد\&. تمام نویسه‌های عام دیگر اختیاری هستند\&. .sp اگر نوع مبدأ \fBregular\-file\fR یا \fBdirectory\fR باشد، الگو ممکن است حاوی نویسه‌های خط مورب (اسلش) باشد\&. در این صورت، با فایل یا دایرکتوری در زیردایرکتوری مربوطه مطابقت خواهد داشت\&. برای مثال "MatchPattern=foo_@v/bar\&.efi" با "bar\&.efi" در دایرکتوری "foo_1" مطابقت پیدا می‌کند\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .SH "گزینه‌های بخش [TARGET] ([TARGET] SECTION OPTIONS)" .PP این بخش ویژگی‌های مقصد انتقال را تعریف می‌کند\&. .PP \fIType=\fR .RS 4 نوع منبع مقصد را برای انتقال مشخص می‌کند\&. یکی از مقادیر \fBpartition\fR، \fBregular\-file\fR، \fBdirectory\fR یا \fBsubvolume\fR را می‌پذیرد\&. برای جزئیات درباره انواع منابع، به بالا مراجعه کنید\&. این گزینه اجباری است\&. .sp توجه داشته باشید که تنها ترکیب‌های خاصی از انواع منابع مبدأ و مقصد پشتیبانی می‌شوند؛ به بالا مراجعه کنید\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIPath=\fR .RS 4 یک مسیر در سیستم فایل را مشخص می‌کند که در آن به دنبال نسخه‌های از قبل نصب‌شده بگردد یا نسخه‌های تازه بارگیری‌شده از این منبع پیکربندی‌شده را قرار دهد\&. اگر \fIType=\fR روی \fBpartition\fR تنظیم شده باشد، انتظار مسیری به یک گره دستگاه بلوکی (کامل) را دارد، یا رشته ویژه "auto" که در این صورت دستگاه بلوکی که شامل سیستم فایل ریشه سیستم در حال اجرای فعلی است به طور خودکار تعیین شده و استفاده می‌شود\&. اگر \fIType=\fR روی \fBregular\-file\fR، \fBdirectory\fR یا \fBsubvolume\fR تنظیم شده باشد، باید به مسیری در سیستم فایل محلی اشاره کند که دایرکتوریِ حاوی فایل‌ها یا دایرکتوری‌های نسخه برای یافتن یا قرار دادن آن‌ها را مشخص می‌نماید\&. .sp توجه داشته باشید که در صورتی که \fIType=\fR روی \fBpartition\fR تنظیم شده باشد، این سازوکار نمی‌تواند برای ایجاد یا حذف پارتیشن‌ها استفاده شود\&. پارتیشن‌ها باید از قبل وجود داشته باشند و از یک برچسب پارتیشن ویژه به نام "_empty" برای نشان دادن پارتیشن‌های خالی استفاده می‌شود\&. برای تولید خودکار پارتیشن‌های مناسب در نخستین بوت، از ابزاری مانند \fBsystemd-repart\fR(8) استفاده کنید\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIPathRelativeTo=\fR .RS 4 مشخص می‌کند که \fIPath=\fR باید نسبت به چه نقطه لنگری (مبنایی) نسبی باشد\&. یکی از مقادیر \fBroot\fR، \fBesp\fR، \fBxbootldr\fR، \fBboot\fR یا \fBexplicit\fR را می‌پذیرد\&. در صورت نامشخص بودن، مقدار پیش‌فرض \fBroot\fR است\&. .sp اگر روی \fBroot\fR، \fBesp\fR، \fBxbootldr\fR تنظیم شود، مقدار مشخص‌شده \fIPath=\fR نسبت به نقطه اتصال (mount point) پارتیشن مربوطه، همان‌طور که توسط \m[blue]\fBمشخصات بوت‌لودر UAPI\&.1\fR\m[]\&\s-2\u[2]\d\s+2 تعریف شده است، حل و فصل خواهد شد\&. .sp اگر روی \fBboot\fR تنظیم شود، مقدار مشخص‌شده \fIPath=\fR نسبت به نقطه اتصال پارتیشن $BOOT (یعنی ESP یا XBOOTLDR)، همان‌طور که توسط \m[blue]\fBمشخصات بوت‌لودر UAPI\&.1\fR\m[]\&\s-2\u[2]\d\s+2 تعریف شده است، حل و فصل خواهد شد\&. .sp اگر روی \fBexplicit\fR تنظیم شود، مقدار مشخص‌شده \fIPath=\fR نسبت به دایرکتوری مشخص‌شده با \fB\-\-transfer\-source=\fR هنگام فراخوانی \fBsystemd-sysupdate\fR(8) حل و فصل خواهد شد\&. .sp مقادیر \fBesp\fR، \fBxbootldr\fR و \fBboot\fR تنها زمانی پشتیبانی می‌شوند که \fIType=\fR روی \fBregular\-file\fR یا \fBdirectory\fR تنظیم شده باشد\&. .sp در نسخه ۲۵۴ اضافه شد\&. .RE .PP \fIMatchPattern=\fR .RS 4 یک یا چند الگوی تطبیق نام فایل یا برچسب پارتیشن را مشخص می‌کند که زیرمجموعه‌ای از فایل‌ها یا پارتیشن‌هایی را که گزینه‌های به‌روزرسانی به عنوان مقصد برای این انتقال هستند، انتخاب می‌نماید\&. برای جزئیات درباره الگوهای تطبیق به بالا مراجعه کنید\&. .sp این گزینه اجباری است\&. هر الگوی فهرست‌شده باید حداقل شامل نویسه عام "@v" باشد تا بتوان شناسه نسخه را از نام فایل استخراج کرد\&. تمام نویسه‌های عام دیگر اختیاری هستند\&. .sp این الگو هم برای تطبیق نسخه‌های نصب‌شده موجود و هم برای تعیین نام نسخه‌های جدید جهت نصب استفاده می‌شود\&. اگر چندین الگو مشخص شود، اولین الگوی مشخص‌شده برای نام‌گذاری نسخه‌های تازه نصب‌شده استفاده می‌شود\&. .sp اگر نوع مقصد \fBregular\-file\fR یا \fBdirectory\fR باشد، الگو ممکن است حاوی نویسه‌های خط مورب باشد\&. در این صورت، با فایل یا دایرکتوری در زیردایرکتوری مربوطه مطابقت خواهد داشت\&. برای مثال "MatchPattern=foo_@v/bar\&.efi" با "bar\&.efi" در دایرکتوری "foo_1" مطابقت پیدا می‌کند\&. دایرکتوری‌های موجود در مسیر هنگام نصب فایل ایجاد خواهند شد\&. دایرکتوری‌های خالی هنگام حذف فایل پاک می‌شوند\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIMatchPartitionType=\fR .RS 4 هنگامی که \fIType=\fR مقصد به عنوان \fBpartition\fR انتخاب شود، نوع پارتیشن GPT را برای جستجو مشخص می‌کند\&. تنها پارتیشن‌های این نوع در نظر گرفته می‌شوند و از تمام پارتیشن‌های دیگر صرف‌نظر می‌شود\&. در صورت نامشخص بودن، نوع پارتیشن GPT برابر با \fBlinux\-generic\fR استفاده می‌شود\&. یک شناسه لفظی UUID یا یک شناسه نوع نمادین را می‌پذیرد\&. برای فهرستی از شناسه‌های نوع پشتیبانی‌شده، به تنظیم \fIType=\fR در \fBrepart.d\fR(5) مراجعه کنید\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIPartitionUUID=\fR، \fIPartitionFlags=\fR، \fIPartitionNoAuto=\fR، \fIPartitionGrowFileSystem=\fR .RS 4 هنگامی که \fIType=\fR مقصد به عنوان \fBpartition\fR انتخاب شود، شناسه UUID پارتیشن GPT و فلگ‌های پارتیشن را برای استفاده در پارتیشن به‌روزرسانی‌شده انتخاب می‌کند\&. به ترتیب انتظار یک رشته UUID معتبر، یک عدد صحیح هگزادسیمال، یا مقادیر بولی را دارد\&. اگر تنظیم نشده باشد اما الگوی تطبیق مبدأ شامل نویسه‌های عام برای این فیلدها باشد (یعنی "@u"، "@f"، "@a" یا "@g")، مقادیر حاصل از الگوها استفاده می‌شوند\&. اگر نه با نویسه‌های عام و نه با این تنظیمات صریح پیکربندی نشده باشند، مقادیر دست‌نخورده باقی می‌مانند\&. اگر هم تنظیم کلی فلگ‌های \fIPartitionFlags=\fR و هم تنظیمات فلگ‌های جداگانه \fIPartitionNoAuto=\fR و \fIPartitionGrowFileSystem=\fR استفاده شوند (یا نویسه‌های عام مربوط به آن‌ها)، در این صورت تنظیمات جداگانه بر تنظیم کلی ارجحیت خواهند داشت، یعنی بیت فلگ جداگانه مقدار کلی فلگ‌ها را بازنویسی می‌کند\&. برای جزئیات در مورد این فلگ‌ها، به \m[blue]\fBمشخصات پارتیشن‌های قابل‌کشف UAPI\&.2\fR\m[]\&\s-2\u[1]\d\s+2 مراجعه کنید\&. .sp توجه داشته باشید که این تنظیمات برای تطبیق استفاده نمی‌شوند، بلکه فقط در صورتی که انتقالی انجام شود، روی پارتیشن‌های تازه نوشته‌شده تأثیر می‌گذارند\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIReadOnly=\fR .RS 4 کنترل می‌کند که آیا فایل، ساب‌والیوم یا پارتیشن حاصل به عنوان فقط‌خواندنی نشانه‌گذاری شود یا خیر\&. اگر نوع مقصد \fBpartition\fR باشد، این گزینه فلگ پارتیشن ReadOnly را مطابق با \m[blue]\fBمشخصات پارتیشن‌های قابل‌کشف UAPI\&.2\fR\m[]\&\s-2\u[1]\d\s+2 مشابه با فلگ‌های \fIPartitionNoAuto=\fR و \fIPartitionGrowFileSystem=\fR که در بالا توصیف شد کنترل می‌کند\&. اگر نوع مقصد \fBregular\-file\fR باشد، بیت قابل‌نوشتن از حالت دسترسی حذف می‌شود\&. اگر نوع مقصد \fBsubvolume\fR باشد، ساب‌والیوم به طور کلی به عنوان فقط‌خواندنی علامت‌گذاری می‌شود\&. در نهایت، اگر \fIType=\fR مقصد به عنوان \fBdirectory\fR انتخاب شود، ویژگی فایل "تغییرناپذیر" (immutable) تنظیم می‌شود، برای جزئیات به \fBchattr\fR(1) مراجعه کنید\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIMode=\fR .RS 4 حالت دسترسی فایل یونیکس برای استفاده در فایل‌های تازه ایجادشده در صورتی که نوع منبع مقصد به عنوان \fBregular\-file\fR انتخاب شده باشد\&. انتظار یک عدد صحیح هشت‌هشتی (اکتال) به سبک معمول یونیکس را دارد\&. اگر تنظیم نشده باشد اما الگوی تطبیق مبدأ شامل یک نویسه عام برای این فیلد باشد (یعنی "@t")، مقدار حاصل از الگو استفاده می‌شود\&. .sp توجه داشته باشید که این تنظیم برای تطبیق استفاده نمی‌شود، بلکه فقط در صورتی که انتقالی انجام شود، روی فایل‌های تازه نوشته‌شده تأثیر دارد\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fITriesDone=\fR، \fITriesLeft=\fR .RS 4 این گزینه‌ها اعداد صحیح ده‌دهی مثبت را می‌پذیرند و تعداد تلاش‌های انجام‌شده و باقی‌مانده را برای این فایل کنترل می‌کنند\&. این تنظیمات برای مدیریت ایمیج‌های هسته، پیرو طرح تعریف‌شده در \m[blue]\fBارزیابی خودکار بوت\fR\m[]\&\s-2\u[3]\d\s+2 مفید هستند و تنها در صورتی تأثیر دارند که الگوی مقصد شامل نویسه‌های عام "@d" یا "@l" باشد\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIInstancesMax=\fR .RS 4 یک عدد صحیح ده‌دهی بزرگ‌تر یا مساوی ۲ می‌پذیرد\&. این گزینه پیکربندی می‌کند که چه تعداد نسخه هم‌زمان از منبع نگهداری شود\&. هر زمان که به‌روزرسانی جدیدی آغاز شود، اطمینان حاصل می‌شود که در مقصد بیش از تعداد نسخه‌های مشخص‌شده در اینجا منهای یک وجود نداشته باشد\&. هرگونه نسخه اضافی حذف می‌شود (در صورتی که \fIType=\fR مقصد از نوع \fBregular\-file\fR، \fBdirectory\fR یا \fBsubvolume\fR استفاده شود) یا خالی می‌گردد (در صورتی که \fIType=\fR مقصد از نوع \fBpartition\fR استفاده شود؛ خالی کردن در این حالت صرفاً به معنای تنظیم برچسب پارتیشن روی رشته ویژه "_empty" است؛ توجه داشته باشید که هیچ پارتیشنی در واقع حذف نمی‌شود)\&. پس از تکمیل به‌روزرسانی، تعداد نسخه‌های هم‌زمان منابع مقصد برابر یا کمتر از تعداد مشخص‌شده در اینجا خواهد بود\&. .sp توجه داشته باشید که این تنظیم ممکن است برای هر انتقال به صورت متفاوت تنظیم شود\&. با این حال، به طور کلی توصیه می‌شود این تنظیم را برای تمام انتقال‌ها یکسان نگه دارید، زیرا در غیر این صورت ترکیب‌های ناقصی از فایل‌ها یا پارتیشن‌ها به صورت نصب‌شده باقی خواهند ماند\&. .sp اگر \fIType=\fR مقصد به عنوان \fBpartition\fR انتخاب شود، تعداد نسخه‌های هم‌زمان برای نگهداری علاوه بر این توسط تعداد اسلات‌های پارتیشن از نوع صحیح در جدول پارتیشن محدود می‌شود\&. یعنی اگر تنها ۲ اسلات پارتیشن برای نوع پارتیشن انتخاب‌شده وجود داشته باشد، تنظیم این مقدار بزرگ‌تر از ۲ بی‌اثر است، زیرا در هر صورت بیش از ۲ نسخه هم‌زمان نمی‌توانند در ایمیج ذخیره شوند\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fIRemoveTemporary=\fR .RS 4 یک آرگومان بولی می‌پذیرد\&. اگر این گزینه فعال باشد (که حالت پیش‌فرض است)، قبل از شروع یک به‌روزرسانی، تمام به‌روزرسانی‌های ناقص و باقی‌مانده از تلاش قبلی از دایرکتوری مقصد حذف می‌شوند\&. این گزینه تنها در صورتی تأثیر دارد که \fIType=\fR منبع مقصد به عنوان \fBregular\-file\fR، \fBdirectory\fR یا \fBsubvolume\fR انتخاب شده باشد\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .PP \fICurrentSymlink=\fR .RS 4 نام یک پیوند نمادین (symlink) را به عنوان آرگومان می‌پذیرد\&. در صورت استفاده از این گزینه، به عنوان آخرین مرحله به‌روزرسانی، یک پیوند نمادین تحت نام مشخص‌شده ایجاد/به‌روزرسانی می‌شود که به به‌روزرسانی کامل‌شده اشاره می‌کند\&. این گزینه برای ارائه یک نام پایدار که همیشه به جدیدترین نسخه منبع اشاره دارد، مفید است\&. این گزینه تنها زمانی پشتیبانی می‌شود که \fIType=\fR منبع مقصد به عنوان \fBregular\-file\fR، \fBdirectory\fR یا \fBsubvolume\fR انتخاب شده باشد\&. .sp در نسخه ۲۵۱ اضافه شد\&. .RE .SH "مشخص‌کننده‌ها (SPECIFIERS)" .PP مشخص‌کننده‌ها ممکن است در تنظیمات \fIMinVersion=\fR، \fIProtectVersion=\fR، \fIPath=\fR، \fIMatchPattern=\fR و \fICurrentSymlink=\fR استفاده شوند\&. بسط‌های زیر پشتیبانی می‌شوند: .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .B جدول\ \&3.\ \&مشخص‌کننده‌های موجود .TS allbox tab(:); lB lB lB. T{ مشخص‌کننده T}:T{ مفهوم T}:T{ جزئیات T} .T& l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l. T{ "%a" T}:T{ معماری T}:T{ یک رشته کوتاه که معماری سیستم محلی را مشخص می‌کند\&. رشته‌ای مانند \fBx86\fR، \fBx86\-64\fR یا \fBarm64\fR\&. برای فهرست کامل، به معماری‌های تعریف‌شده برای \fIConditionArchitecture=\fR در \fBsystemd.unit\fR(5) مراجعه کنید\&. T} T{ "%A" T}:T{ نسخه ایمیج سیستم‌عامل T}:T{ شناسه نسخه ایمیج سیستم‌عاملِ سیستم در حال اجرا، همان‌طور که از فیلد \fIIMAGE_VERSION=\fR در /etc/os\-release خوانده می‌شود\&. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود\&. برای اطلاعات بیشتر به \fBos-release\fR(5) مراجعه کنید\&. T} T{ "%b" T}:T{ شناسه بوت T}:T{ شناسه بوت سیستم در حال اجرا، قالب‌بندی‌شده به صورت رشته\&. برای اطلاعات بیشتر به \fBrandom\fR(4) مراجعه کنید\&. T} T{ "%B" T}:T{ شناسه ساخت سیستم‌عامل T}:T{ شناسه ساخت سیستم‌عاملِ سیستم در حال اجرا، همان‌طور که از فیلد \fIBUILD_ID=\fR در /etc/os\-release خوانده می‌شود\&. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود\&. برای اطلاعات بیشتر به \fBos-release\fR(5) مراجعه کنید\&. T} T{ "%H" T}:T{ نام میزبان T}:T{ نام میزبان سیستم در حال اجرا\&. T} T{ "%l" T}:T{ نام کوتاه میزبان T}:T{ نام میزبان سیستم در حال اجرا، کوتاه‌شده در اولین نقطه برای حذف هرگونه مؤلفه دامنه\&. T} T{ "%m" T}:T{ شناسه ماشین T}:T{ شناسه ماشینِ سیستم در حال اجرا، قالب‌بندی‌شده به صورت رشته\&. برای اطلاعات بیشتر به \fBmachine-id\fR(5) مراجعه کنید\&. T} T{ "%M" T}:T{ شناسه ایمیج سیستم‌عامل T}:T{ شناسه ایمیج سیستم‌عاملِ سیستم در حال اجرا، همان‌طور که از فیلد \fIIMAGE_ID=\fR در /etc/os\-release خوانده می‌شود\&. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود\&. برای اطلاعات بیشتر به \fBos-release\fR(5) مراجعه کنید\&. T} T{ "%o" T}:T{ شناسه سیستم‌عامل T}:T{ شناسه سیستم‌عاملِ سیستم در حال اجرا، همان‌طور که از فیلد \fIID=\fR در /etc/os\-release خوانده می‌شود\&. برای اطلاعات بیشتر به \fBos-release\fR(5) مراجعه کنید\&. T} T{ "%v" T}:T{ انتشار هسته T}:T{ همانند خروجی دستور \fBuname \-r\fR\&. T} T{ "%w" T}:T{ شناسه نسخه سیستم‌عامل T}:T{ شناسه نسخه سیستم‌عاملِ سیستم در حال اجرا، همان‌طور که از فیلد \fIVERSION_ID=\fR در /etc/os\-release خوانده می‌شود\&. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود\&. برای اطلاعات بیشتر به \fBos-release\fR(5) مراجعه کنید\&. T} T{ "%W" T}:T{ شناسه گونه سیستم‌عامل T}:T{ شناسه گونهٔ (واریانت) سیستم‌عاملِ سیستم در حال اجرا، همان‌طور که از فیلد \fIVARIANT_ID=\fR در /etc/os\-release خوانده می‌شود\&. اگر تنظیم نشده باشد، به یک رشته خالی تبدیل می‌شود\&. برای اطلاعات بیشتر به \fBos-release\fR(5) مراجعه کنید\&. T} T{ "%T" T}:T{ دایرکتوری فایل‌های موقت T}:T{ این یا /tmp است یا مسیری که "$TMPDIR"، "$TEMP" یا "$TMP" روی آن تنظیم شده‌اند\&. (توجه داشته باشید که دایرکتوری ممکن است بدون خط مورب انتهایی مشخص شود\&.) T} T{ "%V" T}:T{ دایرکتوری برای فایل‌های موقت بزرگ‌تر و پایدار T}:T{ این یا /var/tmp است یا مسیری که "$TMPDIR"، "$TEMP" یا "$TMP" روی آن تنظیم شده‌اند\&. (توجه داشته باشید که دایرکتوری ممکن است بدون خط مورب انتهایی مشخص شود\&.) T} T{ "%%" T}:T{ علامت تک‌درصد T}:T{ از "%%" به جای "%" برای مشخص کردن یک علامت تک‌درصد استفاده کنید\&. T} .TE .sp 1 .PP پیشوند بسط مشخص‌کننده "%" را با پیشوند نویسه عام الگوی تطبیق "@" اشتباه نگیرید\&. اولی میان‌برهای ساده‌ای هستند که هنگام تجزیه فایل‌های دراپ‌این بسط می‌یابند، در حالی که دومی بخش متغیری از یک رشته الگوی تطبیق را کپسوله‌سازی می‌کند\&. برای جزئیات درباره نویسه‌های عام الگوی تطبیق، به بالا مراجعه کنید\&. .SH "مثال‌ها (EXAMPLES)" .PP \fBمثال\ \&1.\ \&به‌روزرسانی‌ها برای یک سیستم‌عامل امن با Verity فعال\fR .PP با سه فایل زیر، یک پارتیشن سیستم فایل ریشه، یک پارتیشن Verity منطبق، و یک ایمیج هسته یکپارچه را برای به‌روزرسانی به عنوان یک مجموعه واحد تعریف می‌کنیم\&. این مثال گسترشی از مثال مورد بحث در ابتدای این صفحه راهنما است\&. .PP .if n \{\ .RS 4 .\} .nf # /usr/lib/sysupdate\&.d/50\-verity\&.transfer [Transfer] ProtectVersion=%A [Source] Type=url\-file Path=https://download\&.example\&.com MatchPattern=foobarOS_@v_@u\&.verity\&.xz [Target] Type=partition Path=auto MatchPattern=foobarOS_@v_verity MatchPartitionType=root\-verity PartitionFlags=0 ReadOnly=1 .fi .if n \{\ .RE .\} .PP موارد بالا سازوکار به‌روزرسانی را برای پارتیشن Verity سیستم فایل ریشه تعریف می‌کند\&. ایمیج‌های پارتیشن Verity از "https://download\&.example\&.com/foobarOS_@v_@u\&.verity\&.xz" بارگیری شده و در یک پارتیشن محلی مناسب نوشته می‌شوند که به عنوان فقط‌خواندنی علامت‌گذاری شده است\&. با این فرض که این به‌روزرسانی از خود ایمیج اجرا می‌شود، نسخه فعلی ایمیج (یعنی مشخص‌کننده "%A") به عنوان محافظت‌شده نشانه‌گذاری می‌شود تا اطمینان حاصل شود که در حین بوت بودن خراب نمی‌شود\&. توجه داشته باشید که شناسه UUID پارتیشن برای پارتیشن مقصد در نام فایل مبدأ کدگذاری شده است\&. تثبیت UUID پارتیشن می‌تواند برای اطمینان از اینکه عبارت "roothash=" در خط فرمان هسته برای مشخص کردن دقیق هر دو پارتیشن Verity و سیستم فایل ریشه و همچنین کدگذاری هش سطح ریشه Verity کافی است مفید باشد (با این فرض که UUID در نام فایل‌ها با هش سطح بالای آن‌ها مطابقت دارد، همان‌طور که \fBsystemd-gpt-auto-generator\fR(8) پیشنهاد می‌کند)\&. .PP .if n \{\ .RS 4 .\} .nf # /usr/lib/sysupdate\&.d/60\-root\&.transfer [Transfer] ProtectVersion=%A [Source] Type=url\-file Path=https://download\&.example\&.com MatchPattern=foobarOS_@v_@u\&.root\&.xz [Target] Type=partition Path=auto MatchPattern=foobarOS_@v MatchPartitionType=root PartitionFlags=0 ReadOnly=1 .fi .if n \{\ .RE .\} .PP موارد بالا یک تعریف انتقال منطبق برای سیستم فایل ریشه را تعریف می‌کند\&. .PP .if n \{\ .RS 4 .\} .nf # /usr/lib/sysupdate\&.d/70\-kernel\&.transfer [Transfer] ProtectVersion=%A [Source] Type=url\-file Path=https://download\&.example\&.com MatchPattern=foobarOS_@v\&.efi [Target] Type=regular\-file Path=/EFI/Linux PathRelativeTo=boot MatchPattern=foobarOS_@v+@l\-@d\&.efi \e foobarOS_@v+@l\&.efi \e foobarOS_@v\&.efi Mode=0644 TriesLeft=3 TriesDone=0 InstancesMax=2 .fi .if n \{\ .RE .\} .PP موارد بالا یک ایمیج هسته یکپارچه را مطابق با \m[blue]\fBمشخصات بوت‌لودر UAPI\&.1\fR\m[]\&\s-2\u[2]\d\s+2 نوع #2 در پارتیشن $BOOT نصب می‌کند\&. این کار سه الگوی ممکن را برای نام ایمیج‌های هسته مطابق با \m[blue]\fBارزیابی خودکار بوت\fR\m[]\&\s-2\u[3]\d\s+2 تعریف می‌کند، و اطمینان می‌دهد که هنگام نصب هسته‌های جدید، آن‌ها با ۳ تلاش باقی‌مانده راه‌اندازی می‌شوند\&. حداکثر دو هسته موازی نگهداری می‌شوند\&. .PP با این پیکربندی، وب‌سرور فایل‌های زیر را برای نسخه فرضی ۷ از سیستم‌عامل ارائه می‌دهد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} SHA256SUMS \(en فایل مانیفست حاوی فایل‌های موجود و هش‌های SHA256 آن‌ها .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} SHA256SUMS\&.gpg \(en امضای رمزنگاری‌شده مجزا برای فایل مانیفست .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} foobarOS_7_8b8186b1\-2b4e\-4eb6\-ad39\-8d4d18d2a8fb\&.verity\&.xz \(en ایمیج Verity برای نسخه ۷ .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} foobarOS_7_f4d1234f\-3ebf\-47c4\-b31d\-4052982f9a2f\&.root\&.xz \(en ایمیج سیستم فایل ریشه برای نسخه ۷ .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} foobarOS_7\&.efi \(en ایمیج هسته یکپارچه برای نسخه ۷ .RE .PP برای هر انتشار جدید سیستم‌عامل، یک مجموعه جدید از سه فایل اخیر اضافه می‌شود که هر بار دارای یک نسخه به‌روزرسانی‌شده است\&. مانیفست SHA256SUMS سپس باید بر همین اساس به‌روزرسانی شود و تمام فایل‌ها را برای همه نسخه‌هایی که باید برای بارگیری ارائه شوند، فهرست کند\&. .PP \fBمثال\ \&2.\ \&به‌روزرسانی‌ها برای ایمیج کانتینر دایرکتوری ساده\fR .PP .if n \{\ .RS 4 .\} .nf [Source] Type=url\-tar Path=https://download\&.example\&.com MatchPattern=myContainer_@v\&.tar\&.gz [Target] Type=subvolume Path=/var/lib/machines MatchPattern=myContainer_@v CurrentSymlink=myContainer .fi .if n \{\ .RE .\} .PP در به‌روزرسانی‌ها، این کار "https://download\&.example\&.com/myContainer_@v\&.tar\&.gz" را بارگیری کرده و آن را در /var/lib/machines/myContainer_@v از حالت فشرده خارج و استخراج می‌کند\&. پس از هر به‌روزرسانی، یک پیوند نمادین به نام /var/lib/machines/myContainer ایجاد/به‌روزرسانی می‌شود که همیشه به جدیدترین به‌روزرسانی اشاره دارد\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1)، \fBsystemd-sysupdate\fR(8)، \fBsystemd-repart\fR(8) .SH "نکات (NOTES)" .IP " 1." 4 مشخصات پارتیشن‌های قابل‌کشف UAPI.2 .RS 4 \%https://uapi-group.org/specifications/specs/discoverable_partitions_specification .RE .IP " 2." 4 مشخصات بوت‌لودر UAPI.1 .RS 4 \%https://uapi-group.org/specifications/specs/boot_loader_specification .RE .IP " 3." 4 ارزیابی خودکار بوت .RS 4 \%https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT .RE .IP " 4." 4 کاتالوگ AppStream .RS 4 \%https://www.freedesktop.org/software/appstream/docs/chap-CatalogData.html .RE .IP " 5." 4 فراداده‌های ویژه .RS 4 \%https://systemd.io/APPSTREAM_BUNDLE .RE