OSTREE.REPO-CONFI(5) ostree.repo-config OSTREE.REPO-CONFI(5)

ostree.repo-config - پیکربندی مخزن OSTree

فایل config در یک مخزن OSTree یک «فایل کلید» (keyfile) با قالب XDG Desktop Entry Specification[1] است. این فایل چندین فلگ سراسری و همچنین صفر یا چند ورودی ریموت (remote) دارد که نحوه دسترسی به مخازن دوردست را توصیف می‌کنند.

برای اطلاعات بیشتر در مورد مخازن OSTree، ostree.repo(5) را ببینید.

گزینه‌های سراسری مخزن. ورودی‌های زیر تعریف شده‌اند:

mode

یکی از مقادیر bare, bare-user, bare-user-only, یا archive-z2 (توجه داشته باشید که archive در جاهای دیگر استفاده می‌شود.)

repo_version

در حال حاضر باید برابر با 1 تنظیم شود.

auto-update-summary

مقدار بولی که مشخص می‌کند آیا فایل خلاصه (summary) پس از اضافه شدن، حذف یا به‌روزرسانی هر ref به‌طور خودکار به‌روز شود یا خیر. سایر تغییراتی که ممکن است فایل خلاصه را کهنه کنند (مانند دلتاهای ایستا یا شناسه‌های مجموعه) در حال حاضر به‌روزرسانی خودکار را فعال نمی‌کنند.

commit-update-summary

این گزینه منسوخ شده است. به‌جای آن از auto-update-summary استفاده کنید که این گزینه اکنون نام مستعاری برای آن است.

fsync

مقدار بولی که تعیین می‌کند آیا هنگام انجام عملیاتی مانند کامیت‌ها، pullها و checkoutها، اطمینان از ذخیره پایدار فایل‌ها بر روی حافظه پایدار حاصل شود یا خیر. پیش‌فرض true است.

اگر fsync را غیرفعال کنید، OSTree دیگر در برابر کرش‌های هسته یا قطعی برق مقاوم نخواهد بود.

ممکن است بخواهید این را برای مخازن توسعه محلی غیرفعال کنید، با این فرض که می‌توان آنها را از سورس مجدداً ایجاد کرد. به همین ترتیب، می‌توانید آن را برای یک آینه (mirror) که می‌توانید دوباره دریافت کنید غیرفعال نمایید.

برای مخزن سیستم، اگر منبع تغذیه اضطراری (UPS) و یک هسته به‌خوبی آزمایش‌شده دارید، ممکن است بخواهید fsync را غیرفعال کنید.

per-object-fsync

به‌طور پیش‌فرض، OSTree عملیات fsync() را پس از نوشتن همه چیز به صورت دسته‌ای انجام می‌دهد؛ اما این کار می‌تواند باعث جهش‌های تأخیر (latency spikes) برای سایر فرآیندهایی شود که آنها نیز fsync() را فراخوانی می‌کنند. این متغیر بولی را فعال کنید تا جهش‌های تاخیر بالقوه کاهش یابد، به بهای کاهش سرعت به‌روزرسانی‌های OSTree. به احتمال زیاد می‌خواهید این گزینه برای به‌روزرسانی‌های پس‌زمینه سیستم‌عامل به‌طور پیش‌فرض فعال باشد.

min-free-space-percent

مقدار درصدی عدد صحیح (۰-۹۹) که حداقل درصد فضای کل (به بلوک) در سیستم‌فایل زیربنایی را برای خالی نگه داشتن مشخص می‌کند. مقدار پیش‌فرض ۳ است که زمانی که نه این گزینه و نه min-free-space-size تنظیم نشده باشند اعمال می‌شود.

اگر min-free-space-size روی یک مقدار غیر صفر تنظیم شود، min-free-space-percent نادیده گرفته می‌شود. توجه داشته باشید که min-free-space-percent روی اشیاء فراداده (metadata) اعمال نمی‌شود. فرض بر این است که اشیاء فراداده در مقایسه با اشیاء محتوا از اندازه نسبتاً کوچکی برخوردار هستند و بنابراین خارج از محدوده این گزینه نگهداری می‌شوند.

min-free-space-size

مقداری (بر حسب توان‌های ۲ مگابایت، گیگابایت یا ترابایت) که حداقل فضای خالی در سیستم‌فایل زیربنایی را تعیین می‌کند. نمونه‌هایی از مقادیر قابل قبول: 500MB (524 288 000 بایت)، 1GB (1 073 741 824 بایت)، 1TB (1 099 511 627 776 بایت).

اگر این گزینه روی یک مقدار غیر صفر تنظیم شده باشد، و min-free-space-percent نیز تنظیم شده باشد، این گزینه اولویت دارد. توجه داشته باشید که min-free-space-size روی اشیاء فراداده اعمال نمی‌شود. فرض بر این است که اشیاء فراداده در مقایسه با اشیاء محتوا اندازه نسبتاً کوچکی دارند و بنابراین خارج از محدوده این گزینه قرار می‌گیرند.

add-remotes-config-dir

مقدار بولی که مشخص می‌کند آیا ریموت‌های جدید در دایرکتوری پیکربندی ریموت‌ها اضافه شوند یا خیر. پیش‌فرض برای مخازن ostree سیستمی true است. وقتی این مقدار false باشد، ریموت‌ها در فایل config مخزن اضافه می‌شوند.

این فقط برای مخازنی اعمال می‌شود که از یک دایرکتوری پیکربندی ریموت‌ها استفاده می‌کنند، مانند مخازن ostree سیستم که از /etc/ostree/remotes.d استفاده می‌کنند. مخازن غیر سیستمی از دایرکتوری پیکربندی ریموت‌ها استفاده نمی‌کنند مگر اینکه هنگام باز شدن مخزن مشخص شود.

payload-link-threshold

یک مقدار عدد صحیح که حداقل اندازه فایل را برای ایجاد یک پیوند محموله (payload link) مشخص می‌کند. به‌طور پیش‌فرض غیرفعال است.

collection-id

یک نام دامنه معکوس DNS تحت کنترل شما، که توزیع همتا به همتا (P2P) ارجاعات (refs) را در این مخزن امکان‌پذیر می‌سازد. بخش --collection-id را در ostree-init(1) ببینید.

locking

مقدار بولی که مشخص می‌کند آیا OSTree قفل‌گذاری مخزن را به صورت داخلی انجام می‌دهد یا خیر. این از قفل‌های فایل استفاده می‌کند و بنابراین برای جلوگیری از تداخل چندین فرآیند است (مانند Flatpak و OSTree که به‌طور جداگانه در یک مخزن می‌نویسند). این قابلیت از نسخه 2018.5 به‌طور پیش‌فرض فعال است.

lock-timeout-secs

مقدار عدد صحیح که تعداد ثانیه‌های مسدودسازی را هنگام تلاش برای دستیابی به قفل کنترل می‌کند (بالا را ببینید). مقدار 1- به معنی مسدودسازی نامحدود است. مقدار پیش‌فرض ۳۰۰ است. این مهلت زمانی اکنون به عنوان یک اشتباه در نظر گرفته می‌شود؛ زیرا احتمالاً باعث بروز ناپایداری (flake) می‌شود. توصیه می‌شود آن را روی 1- تنظیم کنید و در صورت تمایل مهلت زمانی را در سطح بالاتر برنامه کنترل نمایید.

default-repo-finders

فهرست پیش‌فرضی از یابنده‌ها (منابع ارجاعات) جداشده با نقطه‌ویرگول برای استفاده در هنگام pull. این می‌تواند برای غیرفعال کردن دریافت از سیستم‌فایل‌های مانت‌شده، همتاهای موجود در شبکه محلی یا اینترنت استفاده شود. با این حال توجه داشته باشید که این تنها زمانی اعمال می‌شود که مجموعه‌ای از یابنده‌ها به‌طور صریح توسط یک مصرف‌کننده API در libostree یا در خط فرمان مشخص نشده باشند. مقادیر ممکن: config, lan, و mount (یا هر ترکیبی از آنها). در صورت عدم تنظیم، مقدار پیش‌فرض آن config;mount; است (زیرا یابنده LAN پرهزینه است).

no-deltas-in-summary

مقدار بولی که تعیین می‌کند آیا OSTree از قرار دادن فهرست دلتاهای موجود در فایل summary صرف‌نظر کند یا خیر. پیش‌فرض false است.

از نسخه 2020.7، OSTree می‌تواند از نمایه‌های دلتا در خارج از فایل summary استفاده کند و فایل خلاصه را کوچک‌تر کند (به‌ویژه برای مخازن بزرگ‌تر). با این حال، به‌طور پیش‌فرض هنوز این نمایه را در فایل خلاصه ایجاد می‌کنیم تا کلاینت‌های قدیمی‌تر کار کنند. اگر می‌دانید که همه کلاینت‌ها نسخه‌های 2020.7 یا جدیدتر هستند، می‌توانید این گزینه را برای صرفه‌جویی در پهنای باند شبکه فعال کنید.

مکان یک مخزن از راه دور (remote) را توصیف می‌کند.

url

باید وجود داشته باشد؛ نشانی URL را برای دسترسی به فراداده و محتوای ریموت اعلام می‌کند. همچنین ببینید: contenturl. طرح‌های پشتیبانی‌شده در ادامه مستند شده‌اند.

contenturl

نشانی URL را برای دسترسی به محتوا (filez، قطعات دلتای ایستا) اعلام می‌کند. در صورت مشخص شدن، url صرفاً برای فراداده استفاده می‌شود: summary، «ابر‌بلوک‌های» دلتای ایستا.

branches

فهرستی از رشته‌ها. شاخه‌های پیش‌فرض پیکربندی‌شده را برای دریافت از ریموت نشان می‌دهد، در صورتی که در طول عملیات pull شاخه‌های خاصی درخواست نشده باشد.

proxy

یک مقدار رشته‌ای؛ در صورت مشخص شدن باید یک URL برای پراکسی HTTP جهت دسترسی به این مخزن باشد.

gpg-verify

یک مقدار بولی، پیش‌فرض true است. کنترل می‌کند که آیا OSTree امضا شدن کامیت‌ها توسط یک کلید GPG شناخته‌شده را الزامی می‌داند یا خیر. برای اطلاعات بیشتر، بخش GPG را در راهنمای ostree(1) ببینید.

gpg-verify-summary

یک مقدار بولی، پیش‌فرض false است. کنترل می‌کند که آیا OSTree امضا شدن summary توسط یک کلید GPG شناخته‌شده را بررسی می‌کند یا خیر. برای اطلاعات بیشتر، بخش GPG را در راهنمای ostree(1) ببینید.

tls-permissive

یک مقدار بولی، پیش‌فرض false است. به‌طور پیش‌فرض، گواهی‌های TLS سرور در برابر مخزن گواهی‌های سیستم بررسی می‌شوند. اگر این متغیر تنظیم شود، هر گواهی پذیرفته خواهد شد.

tls-client-cert-path

مسیر فایل گواهی سمت کلاینت، برای ارائه هنگام ارسال درخواست‌ها به این مخزن.

tls-client-key-path

مسیر فایل حاوی کلید گواهی سمت کلاینت، برای ارائه هنگام ارسال درخواست‌ها به این مخزن.

tls-ca-path

مسیر فایل حاوی لنگرهای مورد اعتماد (trusted anchors) به جای پایگاه‌داده CA سیستم.

http2

یک مقدار بولی، پیش‌فرض true است. به‌طور پیش‌فرض، libostree از HTTP2 استفاده می‌کند؛ تنظیم این گزینه روی false آن را غیرفعال خواهد کرد. ممکن است برای دور زدن سرورهای دارای ایراد مفید باشد.

unconfigured-state

در صورت تنظیم، عملیات‌های pull از این ریموت با متن پیکربندی‌شده با شکست مواجه می‌شوند. این گزینه برای ارائه‌دهندگان سیستم‌عامل در نظر گرفته شده است که فرآیند اشتراک برای دسترسی به محتوا دارند.

custom-backend

در صورت تنظیم، عملیات‌های pull از این ریموت از طریق libostree با خطایی که به این مقدار اشاره دارد شکست می‌خورند. توصیه می‌شود این مقدار یک شناسه نرم‌افزاری باشد (مانند "examplecorp-fetcher")، نه یک متن آزاد ("ExampleCorp Fetcher"). این برای استفاده توسط نرم‌افزارهای سطح بالاتر طراحی شده است که می‌خواهند کامیت‌های ostree را از طریق سازوکار دیگری دریافت کنند، در حالی که همچنان از زیرساخت‌های اصلی libostree پیرامون مواردی مانند امضاها استفاده مجدد می‌کنند.

گزینه‌های مربوط به sysroot، که شامل مخزن OSTree، استقرارها (deployments) و ریشه‌های وضعیت (stateroots) است. ورودی‌های زیر تعریف شده‌اند:

readonly

یک مقدار بولی. اگر روی true تنظیم شود، آنگاه نقطه مانت /sysroot به صورت فقط‌خواندنی سوار می‌شود. این پیکربندی از نوع مخزن قدیمی است و به‌جای آن باید از گزینه معادل در ostree/prepare-root.conf استفاده شود - ببینید: ostree-prepare-root(1).

bootloader

بوت‌لودری را که OSTree هنگام استقرار sysroot استفاده می‌کند پیکربندی می‌کند. این می‌تواند مقادیر زیر را بپذیرد: bootloader=none, bootloader=auto, bootloader=grub2, bootloader=syslinux, bootloader=uboot یا bootloader=zipl. پیش‌فرض auto است.

اگر none باشد، OSTree تنها قطعات BLS (مشخصات لودر بوت) را در sysroot/boot/loader/entries/ برای استقرار تولید می‌کند.

اگر auto باشد، علاوه بر تولید قطعات BLS، ابزار OSTree به‌طور پویا وجود بوت‌لودرهای grub2، uboot و syslinux را بررسی می‌کند. در صورت یافتن یکی از این بوت‌لودرها، OSTree پیکربندی مناسب برای بوت‌لودر یافت‌شده را تولید می‌کند. برای نمونه، در مورد grub2 دستور grub2-mkconfig اجرا می‌شود.

نوع خاصی از بوت‌لودر نیز می‌تواند با انتخاب صریح grub2, syslinux, uboot یا zipl درخواست شود.

boot-counting-tries

مقدار عدد صحیح برای کنترل حداکثر دفعات تلاش برای بوت. داده‌های شمارش بوت در نام ورودی بوت‌لودر ذخیره می‌شود. نام فایل ورودی بوت‌لودر می‌تواند شامل یک علامت مثبت (+) و به دنبال آن یک عدد باشد. این می‌تواند به صورت اختیاری با یک علامت منفی (-) و یک عدد دوم همراه باشد. نقطه (.) و پسوند نام فایل (conf یا efi) باید بلافاصله پس از آن بیایند. جزئیات بیشتر در مشخصات بوت لودر (The Boot Loader Specification)[2]

bls-append-except-default

فهرستی از جفت‌های کلید-مقدار رشته‌ای جداشده با نقطه‌ویرگول. برای نمونه: bls-append-except-default=key1=value1;key2=value2. این جفت‌های کلید-مقدار به قطعات BLS تولیدشده برای استقرارهای غیرپیش‌فرض تزریق خواهند شد. به عبارت دیگر، قطعه BLS مربوط به استقرار پیش‌فرض تحت تأثیر bls-append-except-default قرار نخواهد گرفت.

bootprefix

یک مقدار بولی؛ پیش‌فرض false است. اگر روی true تنظیم شود، ورودی‌های بوت‌لودر تولیدشده شامل /boot به عنوان پیشوند خواهند بود. این گزینه احتمالاً در آینده به‌طور پیش‌فرض فعال خواهد شد.

پیشوند "ex-" در اینجا نشان‌دهنده گزینه‌های آزمایشی است. بخش ex-integrity شامل گزینه‌های مربوط به یکپارچگی سیستم است. اطلاعات درباره گزینه‌های آزمایشی به‌طور رسمی در issueهای بالادستی یافت می‌شود.

علاوه بر فایل /ostree/repo/config ، ریموت‌ها می‌توانند در /etc/ostree/remotes.d نیز مشخص شوند. فایل پیکربندی ریموت باید به .conf ختم شود؛ فایل‌هایی که نام آنها به .conf ختم نمی‌شود نادیده گرفته خواهند شد.

در ابتدا، OSTree تنها دارای یک گزینه url برای ریموت‌ها بود. از آن زمان به بعد، گزینه contenturl معرفی شد. هر دوی این گزینه‌ها از طرح‌های file, http, و https پشتیبانی می‌کنند.

علاوه بر این، هر دوی اینها می‌توانند با رشته mirrorlist= پیشوندگذاری شوند، که به کلاینت دستور می‌دهد که url هدف با فرمت "mirrorlist" است؛ یک فایل متنی ساده از URLهای جداشده با خط جدید. به URLهای بالاتر اولویت داده می‌شود.

توجه داشته باشید که در حال حاضر، گزینه‌های tls-ca-path و tls-client-cert-path روی هر درخواست HTTP اعمال می‌شوند، حتی زمانی که contenturl و/یا mirrorlist در حال استفاده باشند. این ممکن است در آینده تغییر کند تا فقط بر واکشی‌های فراداده (یعنی url، نه contenturl) اعمال شود.

ابزار OSTree از جاکلیدی GPG اختصاصی به ازای هر ریموت، و همچنین گزینه gpgkeypath پشتیبانی می‌کند. برای اطلاعات بیشتر، بخش اعتبارسنجی GPG را در ostree(1) ببینید.

برخی از ارائه‌دهندگان محتوا ممکن است بخواهند دسترسی به مخازن دوردست را از طریق کوکی‌های HTTP کنترل کنند. دستورات ostree remote add-cookie و ostree remote delete-cookie ظرف کوکی (cookie jar) اختصاصی هر ریموت را به نام $remotename.cookies.txt به‌روزرسانی خواهند کرد.

ostree(1), ostree.repo(5)

1.
XDG Desktop Entry Specification
2.
The Boot Loader Specification
OSTree