'\" t .TH "SYSTEMD\-SYSEXT" "8" "" "systemd 261.2" "systemd-sysext" .\" ----------------------------------------------------------------- .\" * 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)" systemd-sysext, systemd-sysext.service, systemd-sysext-initrd.service, systemd-sysext-sysroot.service, systemd-confext, systemd-confext.service, systemd-confext-initrd.service, systemd-confext-sysroot.service \- فعال‌سازی ایمیج‌های افزونه سیستم .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBsystemd\-sysext\fR\ 'u \fBsystemd\-sysext\fR [OPTIONS...] COMMAND .PP systemd\-sysext\&.service .HP \w'\fBsystemd\-confext\fR\ 'u \fBsystemd\-confext\fR [OPTIONS...] COMMAND .PP systemd\-confext\&.service .SH "توضیحات (DESCRIPTION)" .PP \fBsystemd\-sysext\fR ایمیج‌های افزونه سیستم را فعال/غیرفعال می‌کند\&. ایمیج‌های افزونه سیستم ممکن است \(en به‌طور پویا در زمان اجرا \(em سلسله‌مراتب پوشه‌های /usr/ و /opt/ را با فایل‌های اضافی گسترش دهند\&. این امر به‌ویژه در ایمیج‌های سیستم تغییرناپذیر که در آن‌ها سلسله‌مراتب /usr/ و/یا /opt/ مستقر روی یک فایل‌سیستم فقط‌خواندنی باید به‌طور موقت در زمان اجرا بدون ایجاد هرگونه تغییرات دائمی گسترش یابد، مفید است\&. .PP ایمیج‌های افزونه سیستم باید حاوی فایل‌ها و پوشه‌هایی مشابه با ساختار درخت سیستم‌عامل معمولی باشند\&. هنگامی که یک یا چند ایمیج افزونه سیستم فعال می‌شوند، سلسله‌مراتب /usr/ و /opt/ آن‌ها از طریق "overlayfs" با همان سلسله‌مراتب سیستم‌عامل میزبان ترکیب شده و سلسله‌مراتب /usr/ و /opt/ میزبان با آن رونویسی و سوار می‌شوند ("ادغام")\&. هنگامی که غیرفعال می‌شوند، نقطه اتصال پیاده می‌شود \(em و مجدداً نسخه اصلی و دست‌نخورده سلسله‌مراتب میزبان نمایان می‌گردد ("لغو ادغام")\&. بنابراین، ادغام باعث می‌شود منابع افزونه ناگهان زیر سلسله‌مراتب‌های /usr/ و /opt/ ظاهر شوند، گویی که در خود ایمیج پایه سیستم‌عامل گنجانده شده بودند\&. لغو ادغام باعث می‌شود آن‌ها دوباره ناپدید شوند و تنها فایل‌هایی که به همراه خود ایمیج پایه سیستم‌عامل ارائه شده بودند بر جای بمانند\&. .PP فایل‌ها و پوشه‌های موجود در ایمیج‌های افزونه خارج از سلسله‌مراتب‌های /usr/ و /opt/ ادغام \fIنمی‌شوند\fR، و در نتیجه گنجاندن آن‌ها در یک ایمیج افزونه سیستم هیچ اثری ندارد\&. به‌ویژه، فایل‌های موجود در /etc/ و /var/ که در یک ایمیج افزونه سیستم گنجانده شده‌اند، پس از فعال‌سازی در سلسله‌مراتب‌های مربوطه ظاهر \fIنخواهند شد\fR\&. .PP ایمیج‌های افزونه سیستم به‌طور پیش‌فرض کاملاً فقط‌خواندنی هستند\&. در فایل‌سیستم‌های میزبان تغییرپذیر، سلسله‌مراتب‌های /usr/ و /opt/ هنگام ادغام افزونه‌ها فقط‌خواندنی می‌شوند، مگر اینکه قابلیت تغییرپذیری فعال شده باشد\&. تغییرپذیری ممکن است از طریق گزینه \fB\-\-mutable=\fR و گزینه \fIMutable=\fR در فایل پیکربندی فعال شود؛ برای اطلاعات بیشتر بخش "تغییرپذیری" در ادامه را ببینید\&. .PP گزینه‌های مختلف دستور را می‌توان به‌صورت سراسری از طریق فایل‌های پیکربندی تنظیم کرد\&. برای جزئیات بیشتر \fBsysext.conf\fR(5) را ببینید\&. .PP افزونه‌های سیستم قرار است صرفاً افزایشی باشند، یعنی فرض بر این است که فقط فایل‌هایی را شامل شوند که در ایمیج پایه زیرین سیستم‌عامل وجود ندارند\&. با این حال، سازوکار زیرین (overlayfs) امکان هم‌پوشانی یا حذف فایل‌ها را نیز فراهم می‌کند، اما توصیه می‌شود از این قابلیت استفاده نشود\&. .PP ایمیج‌های افزونه سیستم را می‌توان در قالب‌های زیر ارائه کرد: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} پوشه‌های معمولی یا زیرحجم‌های btrfs حاوی درخت سیستم‌عامل .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} ایمیج‌های دیسک دارای برچسب دیسک GPT، پیرو \m[blue]\fBمشخصات پارتیشن‌های قابل‌شناسایی UAPI\&.2\fR\m[]\&\s-2\u[1]\d\s+2 .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} ایمیج‌های دیسک فاقد جدول پارتیشن، با یک فایل‌سیستم عریان لینوکس (مانند erofs، squashfs یا ext4) .RE .PP این قالب‌های ایمیج همان مواردی هستند که \fBsystemd-nspawn\fR(1) از طریق سوئیچ‌های \fB\-\-directory=\fR/\fB\-\-image=\fR خود پشتیبانی می‌کند و همچنین همان‌هایی هستند که مدیر سرویس از طریق \fBRootDirectory=\fR/\fBRootImage=\fR پشتیبانی می‌نماید\&. مشابه آن‌ها، این ایمیج‌ها می‌توانند به‌صورت اختیاری حاوی اطلاعات اعتبارسنجی Verity باشند\&. .PP افزونه‌های سیستم در پوشه‌های /etc/extensions/، /run/extensions/ و /var/lib/extensions/ جستجو می‌شوند\&. دو پوشه اول فهرست‌شده برای نگهداری ایمیج‌های باینری حجیم مناسب نیستند، اما همچنان برای نگهداری پیوندهای نمادین به آن‌ها مفید هستند\&. مکان اصلی برای نصب افزونه‌های سیستم /var/lib/extensions/ است\&. هر پوشه یافت‌شده در این پوشه‌های جستجو به عنوان ایمیج‌های افزونه مبتنی بر پوشه در نظر گرفته می‌شود؛ هر فایلی با پسوند \&.raw به عنوان ایمیج‌های افزونه مبتنی بر ایمیج دیسک در نظر گرفته می‌شود\&. هنگام فراخوانی در initrd، پوشه اضافی /\&.extra/sysext/ نیز در میان پوشه‌هایی که برای یافتن ایمیج‌های افزونه جستجو می‌شوند گنجانده می‌شود\&. با این حال توجه داشته باشید که به‌طور پیش‌فرض یک سیاست ایمیج سخت‌گیرانه‌تر بر ایمیج‌های یافت‌شده در آنجا اعمال می‌شود، به توضیحات زیر مراجعه کنید\&. این پوشه توسط \fBsystemd-stub\fR(7) با ایمیج‌های افزونه یافت‌شده در پارتیشن سیستم EFI سیستم پر می‌شود\&. .PP در زمان بوت، ایمیج‌های افزونه سیستم و پیکربندی در صورتی که سرویس‌های systemd\-sysext\&.service و systemd\-confext\&.service فعال باشند، به‌طور خودکار فعال می‌شوند\&. توجه داشته باشید که این سرویس‌ها تنها پس از سوار شدن فایل‌سیستم‌های زیرین که ممکن است افزونه‌های سیستم و پیکربندی در آن‌ها قرار داشته باشند اجرا می‌شوند\&. برای امکان‌پذیر ساختن ارائه منابعی که توسط زیرسیستم‌های در حال اجرا در نخستین مراحل بوت پردازش می‌شوند (برای نمونه، سرویس‌های سیستم یا تعاریف \fBsystemd-sysusers\fR(8))، سرویس‌های initrd به نام‌های systemd\-sysext\-sysroot\&.service و systemd\-confext\-sysroot\&.service ارائه شده‌اند\&. در حال حاضر، هنگامی که پارتیشن /var/ مجزا باشد، نمی‌توان از این سرویس‌ها برای ادغام افزونه‌های سیستم از /sysroot/var/lib/extensions/ و افزونه‌های پیکربندی از /sysroot/var/lib/confexts/ استفاده کرد\&. این افزونه‌ها بعداً توسط سرویس‌های systemd\-sysext\&.service و systemd\-confext\&.service در طول فرآیند بوت اصلی سیستم‌عامل ادغام می‌شوند\&. .PP همچنین، صفحه \m[blue]\fBسرویس‌های قابل‌حمل\fR\m[]\&\s-2\u[2]\d\s+2 را برای یک سازوکار ساده جهت ارائه سرویس‌های سیستم در ایمیج‌های دیسک، به شیوه‌ای مشابه با افزونه‌های سیستم‌عامل ببینید\&. به تفاوت‌های ایزوله‌سازی میان این دو سازوکار توجه کنید: در حالی که افزونه‌های سیستم مستقیماً ایمیج سیستم‌عامل زیرین را با فایل‌های اضافی گسترش می‌دهند که گویی در خود ایمیج سیستم‌عامل ارائه شده‌اند و بنابراین هیچ‌گونه ایزوله‌سازی امنیتی را در بر ندارند، سرویس‌های قابل‌حمل به یک شیوه یا شیوه دیگر ایزوله‌سازی در سطح سرویس را اعمال می‌کنند\&. .PP تضمین می‌شود که سرویس‌های systemd\-sysext\&.service و systemd\-confext\&.service پیش از رسیدن به basic\&.target راه‌اندازی خود را به پایان برسانند؛ یعنی زمانی که سرویس‌های معمولی مقداردهی اولیه می‌شوند (آن‌هایی که از \fIDefaultDependencies=no\fR استفاده نمی‌کنند)، فایل‌ها و پوشه‌های ارائه‌شده توسط افزونه‌های سیستم و پیکربندی در /usr/، /opt/، و /etc/ در دسترس بوده و قابل دسترسی هستند\&. .PP افزونه‌های سیستم و پیکربندی را می‌توان برای گسترش initrd نیز به کار برد، و سرویس‌های initrd شامل systemd\-sysext\-initrd\&.service و systemd\-confext\-initrd\&.service بدین منظور ارائه شده‌اند\&. توجه داشته باشید که برخی محدودیت‌ها اعمال می‌شوند: منابعی که در نخستین مراحل بوت initrd استفاده می‌شوند (مانند سرویس‌های سیستم) قابل به‌روزرسانی نیستند\&. .PP توجه داشته باشید که مفهومی به عنوان فعال/غیرفعال‌سازی ایمیج‌های افزونه سیستم نصب‌شده وجود ندارد: تمام ایمیج‌های افزونه نصب‌شده به‌طور خودکار در زمان بوت فعال می‌شوند\&. با این حال، می‌توانید یک پوشه خالی با نامی مشابه افزونه (بدون \&.raw) در /etc/extensions/ قرار دهید تا افزونه‌ای با همان نام را در یک پوشه سیستمی با اولویت پایین‌تر "ماسک" (پنهان/غیرفعال) کنید\&. همچنین می‌توان با استفاده از گزینه‌های خط فرمان کرنل شامل \fIrd\&.systemd\&.sysext=\fR، \fIrd\&.systemd\&.confext=\fR، \fIsystemd\&.sysext=\fR و \fIsystemd\&.confext=\fR ادغام خودکار را به‌طور کلی غیرفعال کرد\&. توجه داشته باشید که systemd\-sysext\-sysroot\&.service و systemd\-confext\-sysroot\&.service توسط گزینه‌های \fIsystemd\&.sysext=\fR و \fIsystemd\&.confext=\fR کنترل می‌شوند، زیرا این سرویس‌ها افزونه‌های سیستم و پیکربندی را برای سیستم اصلی ادغام می‌کنند، نه برای initrd\&. .PP یک سازوکار ساده برای سازگاری نسخه اعمال می‌شود: یک ایمیج افزونه سیستم باید حاوی یک فایل /usr/lib/extension\-release\&.d/extension\-release\&.\fINAME\fR باشد که باید با نام ایمیج آن مطابقت داشته باشد و با فایل os\-release میزبان مقایسه می‌شود: فیلدهای \fIID=\fR موجود در آن‌ها باید مطابقت داشته باشند مگر اینکه برای افزونه مقدار "_any" تنظیم شده باشد\&. اگر \fIID=\fR افزونه برابر با "_any" نباشد، فیلد \fISYSEXT_LEVEL=\fR (در صورت تعریف) باید مطابقت داشته باشد\&. اگر مورد اخیر تعریف نشده باشد، در عوض فیلد \fIVERSION_ID=\fR باید مطابقت داشته باشد\&. اگر افزونه فیلد \fIARCHITECTURE=\fR را تعریف کند و مقدار آن "_any" نباشد، باید با معماری کرنل که توسط \fBuname\fR(2) گزارش می‌شود مطابقت داشته باشد، اما شناسه‌های معماری استفاده‌شده همان مواردی هستند که برای \fIConditionArchitecture=\fR در \fBsystemd.unit\fR(5) شرح داده شده‌اند\&. اگر افزونه پس از اعمال نیازمند بازخوانی مدیر سرویس باشد، \fIEXTENSION_RELOAD_MANAGER=\fR می‌تواند روی 1 تنظیم شود\&. توجه داشته باشید که به دلایلی که پیش‌تر ذکر شد، \m[blue]\fBسرویس‌های قابل‌حمل\fR\m[]\&\s-2\u[2]\d\s+2 همچنان روش پیشنهادی برای ارائه سرویس‌های سیستم باقی می‌مانند\&. افزونه‌های سیستم نباید فایل /usr/lib/os\-release را همراه داشته باشند (زیرا با درخت /usr/ میزبان ادغام خواهد شد و داده‌های نسخه سیستم‌عامل میزبان را رونویسی می‌کند که مطلوب نیست)\&. فایل extension\-release از همان قالب و معناشناسی پیروی می‌کند و حاوی همان محتوایی است که فایل os\-release سیستم‌عامل دارد، اما منابع موجود در ایمیج افزونه را توصیف می‌کند\&. .PP مفهوم \fBsystemd\-confext\fR از همان اصول عملکرد \fBsystemd-sysext\fR(8) پیروی می‌کند اما به جای کار روی /usr و /opt، ابزار \fBconfext\fR فقط /etc را گسترش می‌دهد\&. فایل‌ها و پوشه‌های موجود در ایمیج‌های confext خارج از سلسله‌مراتب /etc/ ادغام \fIنمی‌شوند\fR، و بنابراین هنگام گنجانده شدن در ایمیج هیچ تاثیری ندارند\&. قالب‌های این ایمیج‌ها مشابه ایمیج‌های sysext است\&. سلسله‌مراتب ادغام‌شده با پرچم "nosuid" و (در صورتی که از طریق \fB\-\-noexec=false\fR غیرفعال نشده باشد) با پرچم "noexec" سوار خواهد شد\&. .PP دقیقاً مانند sysextها، confextها نیز به‌طور پیش‌فرض کاملاً فقط‌خواندنی هستند\&. ادغام confextها روی فایل‌سیستم‌های میزبان تغییرپذیر باعث می‌شود /etc/ به حالت فقط‌خواندنی درآید\&. همانند sysextها، تغییرپذیری را می‌توان از طریق گزینه \fB\-\-mutable=\fR فعال کرد\&. برای اطلاعات بیشتر به بخش "تغییرپذیری" در زیر مراجعه کنید\&. .PP افزونه‌های پیکربندی در پوشه‌های /run/confexts/، /var/lib/confexts/، /usr/lib/confexts/ و /usr/local/lib/confexts/ جستجو می‌شوند\&. پوشه نخست فهرست‌شده برای نگهداری ایمیج‌های باینری حجیم مناسب نیست، اما همچنان برای نگهداری پیوندهای نمادین به آن‌ها مفید است\&. مکان اصلی برای نصب افزونه‌های پیکربندی /var/lib/confexts/ است\&. هر پوشه یافت‌شده در این پوشه‌های جستجو به عنوان ایمیج‌های confext مبتنی بر پوشه در نظر گرفته می‌شود؛ هر فایلی با پسوند \&.raw به عنوان ایمیج‌های confext مبتنی بر ایمیج دیسک در نظر گرفته می‌شود\&. .PP مجدداً، دقیقاً مانند ایمیج‌های sysext، ایمیج‌های confext نیز حاوی یک فایل /etc/extension\-release\&.d/extension\-release\&.\fINAME\fR خواهند بود که باید با نام ایمیج مطابقت داشته باشد (با راه فرار معمول ویژگی تعمیم‌یافته \fIuser\&.extension\-release\&.strict\fR در \fBxattr\fR(7))، و باز هم محتوای آن یک یا چند مورد از \fIID=\fR، \fIVERSION_ID=\fR و \fICONFEXT_LEVEL\fR است\&. سپس ایمیج‌های confext در برابر لایه پایه سیستم‌عامل بررسی و تطبیق داده می‌شوند\&. .SH "کاربردها (USES)" .PP مهم‌ترین مورد کاربرد برای ایمیج‌های سیستم، محیط‌های تغییرناپذیر هستند که در آن‌ها ابزارهای اشکال‌زدایی و توسعه باید به‌صورت اختیاری در دسترس قرار گیرند، اما در خود ایمیج پایه تغییرناپذیر سیستم‌عامل گنجانده نشوند (برای نمونه \fBstrace\fR(1) و \fBgdb\fR(1) باید یک افزونه با قابلیت نصب اختیاری باشند تا اشکال‌زدایی/توسعه آسان‌تر شود)\&. ایمیج‌های افزونه سیستم نباید به عنوان یک چارچوب عمومی بسته‌بندی نرم‌افزار اشتباه گرفته شوند، زیرا هیچ ساختار وابستگی در دسترس نیست: افزونه‌های سیستم باید تمام فایل‌های مورد نیاز خود را به همراه داشته باشند، به جز مواردی که قبلاً در ایمیج سیستم میزبان زیرین ارائه شده‌اند\&. معمولاً ایمیج‌های افزونه سیستم هم‌زمان با ایمیج پایه سیستم‌عامل \(em در همان سیستم ساخت \(em ایجاد می‌شوند\&. .PP یکی دیگر از موارد کاربرد برای مفهوم افزونه سیستم، جایگزینی موقت منابع ارائه‌شده توسط سیستم‌عامل با منابع جدیدتر است، برای نمونه نصب نسخه توسعه کامپایل‌شده محلی از یک مؤلفه سطح پایین روی ایمیج سیستم‌عامل تغییرناپذیر بدون نیاز به ساخت مجدد کامل سیستم‌عامل یا تغییر ایمیج اسماً تغییرناپذیر\&. (برای مثال "نصب" یک بسته ساخته‌شده محلی با \fBDESTDIR=/var/lib/extensions/mytest make install && systemd\-sysext refresh\fR، که آن را در /usr/ در دسترس قرار می‌دهد گویی در خود ایمیج سیستم‌عامل نصب شده است\&.) این حالت فارغ از اینکه /usr/ میزبان زیرین به عنوان یک ایمیج دیسک تغییرناپذیر مدیریت می‌شود یا یک درخت سنتی تحت کنترل مدیر بسته (یعنی قابل نوشتن) است، کار می‌کند\&. .PP با \fBsystemd\-confext\fR می‌توان پیکربندی مجدد سرویس‌های سیستم‌عامل را در زمان اجرا انجام داد\&. گاهی اوقات نیاز است که مقادیر برخی پارامترهای پیکربندی تعویض شوند یا فقط یک سرویس خاص بدون استقرار کد جدید یا استقرار کامل سیستم‌عامل مجدداً راه‌اندازی شود\&. به عبارت دیگر، ما می‌خواهیم بتوانیم گزینه‌های با بیشترین بسامد پیکربندی را به پرچم‌های قابل‌به‌روزرسانی در زمان اجرا که می‌توانند بدون راه‌اندازی مجدد سیستم تغییر یابند، متصل کنیم\&. این کار به کاهش زمان‌های سرویس‌دهی هنگام نیاز به تغییر پیکربندی سیستم‌عامل کمک خواهد کرد\&. همچنین این ابزار یک ابزار قابل‌اعتماد برای مدیریت پیکربندی فراهم می‌کند زیرا هنگام حذف ایمیج \fBsystemd\-confext\fR تمام فایل‌های پیکربندی قدیمی ناپدید می‌شوند\&. .SH "تغییرپذیری (MUTABILITY)" .PP به‌طور پیش‌فرض، ادغام افزونه‌های سیستم روی فایل‌سیستم‌های میزبان تغییرپذیر باعث می‌شود سلسله‌مراتب‌های /usr/ و /opt/ فقط‌خواندنی شوند\&. ادغام افزونه‌های پیکربندی نیز همین اثر را بر /etc/ خواهد داشت\&. حالت تغییرپذیر امکان نوشتن در این مکان‌ها را هنگام ادغام افزونه‌ها فراهم می‌کند\&. .PP حالت‌های زیر پشتیبانی می‌شوند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} \fBdisabled\fR: اجبار حالت تغییرناپذیر حتی اگر پوشه‌های هدایت نوشتن زیر /var/lib/extensions\&.mutable/ وجود داشته باشند\&. این مقدار پیش‌فرض است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} \fBauto\fR: حالت خودکار\&. تغییرپذیری به‌طور پیش‌فرض غیرفعال است و تنها در صورتی فعال می‌شود که یک پوشه هدایت نوشتن مربوطه زیر /var/lib/extensions\&.mutable/ وجود داشته باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} \fBenabled\fR: اجبار حالت تغییرپذیر و ایجاد خودکار پوشه‌های هدایت نوشتن زیر /var/lib/extensions\&.mutable/ در صورت نیاز\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} \fBimport\fR: اجبار حالت تغییرناپذیر مانند \fBdisabled\fR در بالا، اما ادغام محتوای پوشه‌های زیر /var/lib/extensions\&.mutable/ در فایل‌سیستم میزبان\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} \fBephemeral\fR: اجبار حالت تغییرپذیر مانند \fBenabled\fR در بالا، اما به جای استفاده از پوشه هدایت نوشتن زیر /var/lib/extensions\&.mutable/، ابزار \fBsystemd\-sysext\fR از پوشه‌های موقت خالی استفاده خواهد کرد\&. این بدان معناست که تغییرات ایجادشده در سلسله‌مراتب‌های ادغام‌شده هنگام لغو ادغام آن‌ها از بین خواهند رفت\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} \fBephemeral\-import\fR: اجبار حالت تغییرپذیر مانند \fBephemeral\fR در بالا، اما به جای نادیده گرفتن محتوای پوشه‌های هدایت نوشتن زیر /var/lib/extensions\&.mutable/، آن‌ها مانند آنچه \fBimport\fR انجام می‌دهد در فایل‌سیستم میزبان ادغام می‌شوند\&. .RE .sp برای تعیین حالت‌ها با استفاده از گزینه خط فرمان \fB\-\-mutable=\fR به بخش "گزینه‌ها" در ادامه مراجعه کنید\&. .PP به استثنای حالت ephemeral، حالت تغییرپذیر عملیات نوشتن را به زیرپوشه‌های موجود در /var/lib/extensions\&.mutable/ هدایت می‌کند\&. .RS 4 عملیات نوشتن در /usr/ به /var/lib/extensions\&.mutable/usr/ هدایت می‌شود، .RE .RS 4 عملیات نوشتن در /opt/ به /var/lib/extensions\&.mutable/opt/ هدایت می‌شود، و .RE .RS 4 عملیات نوشتن در /etc/ در /var/lib/extensions\&.mutable/etc/ قرار می‌گیرد\&. .RE .PP اگر usr/، opt/ یا etc/ در /var/lib/extensions\&.mutable/ پیوندهای نمادین باشند، در این صورت عملیات نوشتن به مقصدهای این پیوندها هدایت می‌شود\&. در نتیجه، برای حفظ تغییرپذیری یک فایل‌سیستم میزبان، پیوندهای نمادین زیر را ایجاد کنید: .RS 4 /var/lib/extensions\&.mutable/etc/ → /etc/ .RE .RS 4 /var/lib/extensions\&.mutable/usr/ → /usr/ .RE .RS 4 /var/lib/extensions\&.mutable/opt/ → /opt/ .RE تا عملیات نوشتن به سلسله‌مراتب پوشه پایه اصلی بازگردانده شود\&. .PP همچنین، یک فایل‌سیستم موقت را می‌توان در /var/lib/extensions\&.mutable/ سوار کرد، یا پیوندهای نمادین در /var/lib/extensions\&.mutable/ می‌توانند به زیرپوشه‌هایی در یک فایل‌سیستم موقت (برای نمونه زیر /tmp/) اشاره کنند تا فقط تغییرات موقت مجاز باشد\&. توجه داشته باشید که این با حالت ephemeral یکسان نیست، زیرا فایل‌سیستم موقت پس از لغو ادغام همچنان وجود خواهد داشت\&. .PP افزوده‌شده در نسخه 256\&. .SH "فرمان‌ها (COMMANDS)" .PP فرمان‌های زیر توسط هر دو مفهوم sysext و confext درک می‌شوند: .PP \fBstatus\fR .RS 4 هنگامی که بدون هیچ فعل دستوری فراخوانی شود، یا هنگامی که \fBstatus\fR مشخص گردد، وضعیت ادغام فعلی به‌طور جداگانه (هم برای /usr/ و /opt/ در sysext و هم برای /etc/ در confext) نشان داده می‌شود\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBmerge\fR .RS 4 تمام ایمیج‌های افزونه سیستم که در حال حاضر نصب شده‌اند را در /usr/ و /opt/ ادغام می‌کند؛ این کار با سوار کردن این سلسله‌مراتب‌ها با یک فایل‌سیستم "overlayfs" که سلسله‌مراتب‌های زیرین را با موارد موجود در ایمیج‌های افزونه ترکیب می‌کند، انجام می‌شود\&. اگر سلسله‌مراتب‌ها از قبل ادغام شده باشند، این دستور با شکست مواجه می‌شود\&. برای confext، ادغام به جای آن در پوشه /etc/ انجام می‌پذیرد\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBunmerge\fR .RS 4 با پیاده‌سازی فایل‌سیستم‌های "overlayfs" که پیش‌تر توسط \fBmerge\fR ایجاد شده بودند، تمام ایمیج‌های افزونه سیستم که در حال حاضر نصب شده‌اند را از /usr/ و /opt/ برای sysext و از /etc/ برای confext لغو ادغام می‌کند\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBrefresh\fR .RS 4 ترکیبی از \fBunmerge\fR و \fBmerge\fR: در صورتی که از قبل سوار شده باشد، نمونه موجود "overlayfs" به‌طور موقت پیاده شده و سپس با یک نسخه جدید جایگزین می‌شود\&. این فرمان پس از نصب/حذف ایمیج‌های افزونه سیستم برای به‌روزرسانی مناسب فایل‌سیستم "overlayfs" مفید است\&. اگر هنگام اجرای این فرمان هیچ افزونه سیستمی نصب نشده باشد، معادل \fBunmerge\fR بدون ایجاد هیچ نمونه جدیدی از "overlayfs" اجرا می‌شود\&. توجه داشته باشید که در حال حاضر یک لحظه کوتاه وجود دارد که در آن نه فایل‌سیستم "overlayfs" قدیمی و نه جدید سوار نیستند\&. این بدان معناست که تمام منابع ارائه‌شده توسط یک افزونه سیستم برای مدت کوتاهی ناپدید خواهند شد \(em حتی اگر در طول عملیات نوسازی به‌طور مداوم وجود داشته باشد\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fBlist\fR .RS 4 فهرست کوتاهی از ایمیج‌های افزونه نصب‌شده را نمایش می‌دهد\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 یک متن راهنمای کوتاه را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-version\fR .RS 4 یک رشته کوتاه نسخه را چاپ کرده و خارج می‌شود\&. .RE .SH "گزینه‌ها (OPTIONS)" .PP \fB\-\-root=\fR .RS 4 نسبت به پوشه ریشه مشخص‌شده عمل می‌کند، یعنی اتصال "overlayfs" را نه بر روی سلسله‌مراتب‌های سطح بالای /usr/ و /opt/ میزبان برای sysext یا /etc/ برای confext، بلکه در زیر یک پوشه ریشه مشخص‌شده برقرار می‌سازد\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fB\-\-force\fR .RS 4 هنگام ادغام افزونه‌های سیستم در /usr/ و /opt/ برای sysext و /etc/ برای confext، ناسازگاری‌های نسخه را نادیده می‌گیرد، یعنی ادغام را بدون در نظر گرفتن اینکه اطلاعات نسخه موجود در ایمیج‌ها با میزبان مطابقت دارد یا خیر، اجبار می‌کند\&. .sp افزوده‌شده در نسخه 248\&. .RE .PP \fB\-\-always\-refresh=yes|no\fR .RS 4 هنگام نوسازی افزونه‌های سیستم روی /usr/ و /opt/ برای sysext و /etc/ برای confext، در صورتی که افزونه‌های ادغام‌شده فعلی با آنچه قرار است ادغام شود مطابقت داشته باشد، آن را نادیده می‌گیرد\&. به‌طور پیش‌فرض وقتی تغییری یافت نشود از نوسازی صرف‌نظر می‌شود\&. توجه داشته باشید که تغییرات ایجادشده در پوشه یک افزونه در حالی که ادغام شده است بدون این پرچم نادیده گرفته می‌شوند (مگر اینکه افزونه دیگری تغییر کرده باشد)\&. همچنین توجه داشته باشید که تغییر محتوا در حین ادغام بودن در overlayfs رفتاری تعریف‌نشده است\&. .sp افزوده‌شده در نسخه 260\&. .RE .PP \fB\-\-image\-policy=\fR\fB\fIpolicy\fR\fR .RS 4 یک رشته سیاست ایمیج را مطابق با \fBsystemd.image-policy\fR(7) به عنوان آرگومان دریافت می‌کند\&. این سیاست هنگام کار با ایمیج‌های دیسک افزونه سیستم اعمال می‌شود\&. اگر مشخص نشود، برای افزونه‌های سیستم مقدار پیش‌فرض "root=verity+signed+encrypted+unprotected+absent:usr=verity+signed+encrypted+unprotected+absent" است، یعنی فقط فایل‌سیستم‌های root و /usr/ موجود در ایمیج استفاده می‌شوند\&. برای افزونه‌های پیکربندی مقدار پیش‌فرض "root=verity+signed+encrypted+unprotected+absent" است\&. هنگام اجرا در initrd و کار بر روی یک ایمیج افزونه سیستم ذخیره‌شده در پوشه /\&.extra/sysext/، به‌طور پیش‌فرض سیاست کمی سخت‌گیرانه‌تری استفاده می‌شود: "root=signed+absent:usr=signed+absent"، برای جزئیات بیشتر به بخش‌های بالا مراجعه کنید\&. .sp افزوده‌شده در نسخه 254\&. .RE .PP \fB\-\-mutable=\fR\fB\fIBOOL\fR\fR\fB|\fR\fB\fIauto\fR\fR\fB|\fR\fB\fIimport\fR\fR\fB|\fR\fB\fIephemeral\fR\fR\fB|\fR\fB\fIephemeral\-import\fR\fR\fB|\fR\fB\fIhelp\fR\fR .RS 4 حالت تغییرپذیر را تنظیم می‌کند\&. مقدار ویژه "help" مقادیر شناخته‌شده را فهرست می‌کند\&. .PP \fBno\fR .RS 4 اجبار حالت تغییرناپذیر حتی با وجود پوشه‌های هدایت نوشتن\&. این مقدار پیش‌فرض است\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fBauto\fR .RS 4 فعال‌سازی حالت تغییرپذیر به‌طور جداگانه برای /usr/، /opt/، و /etc/ در صورتی که زیرپوشه‌های هدایت نوشتن یا پیوندهای نمادین در /var/lib/extensions\&.mutable/ حاضر باشند؛ در غیر این صورت غیرفعال می‌شود\&. برای اطلاعات بیشتر درباره هدایت نوشتن به بخش "تغییرپذیری" در بالا مراجعه کنید\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fByes\fR .RS 4 اجبار حالت تغییرپذیر\&. در صورت عدم وجود، پوشه‌های هدایت نوشتن در /var/lib/extensions\&.mutable/ ایجاد خواهند شد\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fBimport\fR .RS 4 حالت تغییرناپذیر، اما همراه با ادغام محتوای پوشه‌های هدایت نوشتن در /var/lib/extensions\&.mutable/ در فایل‌سیستم میزبان\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fBephemeral\fR .RS 4 اجبار حالت تغییرپذیر، اما با نادیده گرفتن محتوای پوشه‌های هدایت نوشتن در /var/lib/extensions\&.mutable/، و دور ریخته شدن تغییرات فایل‌سیستم میزبان پس از لغو ادغام\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fBephemeral\-import\fR .RS 4 اجبار حالت تغییرپذیر، همراه با ادغام محتوای پوشه‌های هدایت نوشتن در /var/lib/extensions\&.mutable/ در فایل‌سیستم میزبان، اما با دور ریخته شدن تغییرات ایجادشده در فایل‌سیستم میزبان پس از لغو ادغام\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fBhelp\fR .RS 4 فهرست مقادیر شناخته‌شده را نمایش داده و بلافاصله خارج می‌شود\&. .sp افزوده‌شده در نسخه 259\&. .RE .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-noexec=\fR\fB\fIBOOL\fR\fR .RS 4 هنگام ادغام افزونه‌های پیکربندی در /etc/ به‌طور پیش‌فرض از پرچم اتصال "MS_NOEXEC" استفاده می‌شود\&. این گزینه می‌تواند برای غیرفعال کردن آن استفاده شود\&. .sp افزوده‌شده در نسخه 254\&. .RE .PP \fB\-\-no\-reload\fR .RS 4 هنگامی که همراه با \fBmerge\fR، \fBunmerge\fR یا \fBrefresh\fR استفاده شود، دیمن را پس از اعمال تغییرات مجدداً بارگذاری نمی‌کند، حتی اگر افزونه‌ای که اعمال شده از طریق تنظیم \fIEXTENSION_RELOAD_MANAGER=\fR روی 1 نیازمند بازخوانی باشد\&. .sp افزوده‌شده در نسخه 255\&. .RE .PP \fB\-\-no\-pager\fR .RS 4 خروجی را به یک صفحه‌بندی‌کننده هدایت نمی‌کند\&. .RE .PP \fB\-\-no\-legend\fR .RS 4 راهنما، یعنی سرستون‌های جدول و پانویس حاوی نکات را چاپ نمی‌کند\&. .RE .PP \fB\-\-json=\fR\fB\fIMODE\fR\fR .RS 4 خروجی را در قالب JSON نشان می‌دهد\&. یکی از مقادیر زیر را می‌پذیرد: "short" (برای کوتاه‌ترین خروجی ممکن بدون هیچ‌گونه فاصله خالی یا شکست خط اضافی)، "pretty" (برای یک نسخه خواناتر و مرتب از همان با تورفتگی و شکست خط) یا "off" (برای خاموش کردن خروجی JSON، که پیش‌فرض است)\&. .RE .SH "وضعیت خروج (EXIT STATUS)" .PP در صورت موفقیت، 0 برگردانده می‌شود\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1), \fBsysext.conf\fR(5), \fBsystemd-nspawn\fR(1), \fBsystemd-stub\fR(7), \fBimportctl\fR(1) .SH "یادداشت‌ها (NOTES)" .IP " 1." 4 مشخصات پارتیشن‌های قابل‌شناسایی UAPI.2 .RS 4 \%https://uapi-group.org/specifications/specs/discoverable_partitions_specification .RE .IP " 2." 4 سرویس‌های قابل‌حمل .RS 4 \%https://systemd.io/PORTABLE_SERVICES .RE