SCHROOT-SETUP(5) Debian sbuild SCHROOT-SETUP(5)

schroot-setup - اسکریپت‌های راه‌اندازی chroot در schroot

دستور schroot از اسکریپت‌هایی برای برپایی و سپس پاک‌سازی محیط chroot استفاده می‌کند. دایرکتوری /etc/schroot/setup.d حاوی اسکریپت‌هایی است که هنگام ایجاد و نابودی یک chroot اجرا می‌شوند. هنگام اجرای اسکریپت‌ها چندین متغیر محیطی تنظیم می‌شوند که امکان سفارشی‌سازی رفتار آن‌ها را، برای نمونه بر اساس نوع chroot مورد استفاده، فراهم می‌سازد.

اسکریپت‌ها به ترتیب الفبای نامشان اجرا می‌شوند، مشابه اسکریپت‌های اجرا شده توسط init(8)، و با استفاده از همان شیوه اجرایی run-parts(8).

اسکریپت‌های برپایی همگی با دو آرگومان فراخوانی می‌شوند:

1
عملیاتی که باید انجام شود.
هنگامی که یک نشست (session) برای نخستین بار آغاز می‌شود، chroot با اجرای اسکریپت‌های موجود در /etc/schroot/setup.d با گزینه ‘setup-start’ برپا می‌گردد. هنگامی که نشست پایان می‌یابد، اسکریپت‌های موجود در /etc/schroot/setup.d با ترتیب معکوس و با گزینه ‘setup-stop’ اجرا می‌شوند.
2
وضعیت chroot.
این مقدار در صورت نبود مشکل برابر ‘ok’ و در صورت بروز خطا برابر ‘fail’ خواهد بود. برای نمونه، ممکن است برخی اقدامات مشخص در هنگام شکست نادیده گرفته شوند.

توجه داشته باشید که اسکریپت‌ها باید idempotent (دارای اثر یکسان در اجرای مکرر) باشند. آن‌ها در طول فاز ‘setup-stop’ حتماً باید idempotent باشند، زیرا ممکن است بیش از یک بار اجرا شوند، برای نمونه هنگام بروز خطا.

نام کاربری کاربری که دستور درون chroot با دسترسی او اجرا خواهد شد.
نام chroot. توجه داشته باشید که این نام chroot اصلی پیش از ایجاد نشست است؛ احتمالاً شما به SESSION_ID نیاز دارید.
دایرکتوری‌ای که برنامه‌های کمکی در آن قرار دارند.
دایرکتوری‌ای که chrootهای غیر فایل‌سیستمی در آن متصل (mount) می‌شوند (مانند دستگاه‌های بلوکی و snapshotهای LVM).
شناسه فرایند (PID) مربوط به فرایند schroot.
پلتفرم سیستم‌عاملی که schroot روی آن در حال اجرا است. این متغیر می‌تواند در صورت نیاز برای اعمال رفتارهای وابسته به پلتفرم در اسکریپت‌های برپایی استفاده شود. توجه داشته باشید که متغیرهای HOST احتمالاً موارد مورد نیاز شما هستند. در چارچوب schroot، پلتفرم پیکربندی و رفتار پشتیبانی‌شده برای یک معماری معین است و ممکن است در میان معماری‌های مختلف یکسان باشد.
شناسه نشست (session identifier).
در صورتی که فقط پیام‌های خطا باید چاپ شوند روی ‘quiet’ تنظیم می‌شود، اگر سایر پیام‌ها نیز مجاز به چاپ باشند روی ‘normal’، و اگر تمام پیام‌ها باید چاپ شوند روی ‘verbose’. این متغیر قبلاً AUTH_VERBOSITY نامیده می‌شد.
اگر نشستی قرار است ایجاد شود برابر ‘true’ و در غیر این صورت ‘false’ تنظیم می‌شود.
اگر یک نشست قرار است کلون (همانندسازی) شود روی ‘true’ تنظیم می‌شود، در غیر این صورت ‘false’.
اگر یک نشست قرار است پاک‌سازی کامل (purge) شود روی ‘true’ تنظیم می‌شود، در غیر این صورت ‘false’.
اگر نشستی قرار است از یک chroot مبدأ (source) ایجاد شود روی ‘true’ تنظیم می‌شود، در غیر این صورت ‘false’.
نوع chroot. این متغیر برای محدود کردن یک وظیفه برپایی به انواع خاصی از chroot (مانند فقط دستگاه‌های بلوکی یا snapshotهای LVM) مفید است.
نام chroot. این متغیر برای محدود کردن یک وظیفه برپایی به یک chroot خاص یا مجموعه‌ای از chrootها مفید است.
نام مستعار (alias) استفاده‌شده برای انتخاب chroot. این متغیر برای تخصیص یک وظیفه برپایی بر اساس یکی از نام‌های مستعار جایگزین یا نام پیش‌فرض chroot مفید است. برای نمونه، می‌توان از آن برای تعیین مخازن اضافی در /etc/apt/sources.list استفاده کرد، مانند نام مستعار stable-security برای یک chroot پایدار، یا نام مستعار experimental برای یک chroot ناپایدار.
توضیحات chroot.
مکانی برای متصل کردن chroot. این مقدار برای ایجاد نقطه اتصال (mount point) و سوار کردن استفاده می‌شود.
مکان chroot درون نقطه اتصال. این متغیر اجازه می‌دهد چندین chroot روی یک فایل‌سیستم واحد وجود داشته باشند. این متغیر برای تمام انواع chrootهای قابل اتصال تنظیم می‌شود.
مسیر مطلق به chroot. این مسیر معمولاً حاصل الحاق CHROOT_MOUNT_LOCATION و CHROOT_LOCATION است. این مسیری است که باید برای دسترسی به chrootها استفاده شود.

این انواع chroot تنها از متغیرهای عمومی استفاده می‌کنند.

فایلی که حاوی فایل‌های chroot است.
برای بسته‌بندی مجدد chroot در یک فایل آرشیو هنگام پایان نشست روی ‘true’ تنظیم می‌شود، در غیر این صورت ‘false’.

این متغیرها تنها برای انواع chrootهایی که مستقیماً قابل اتصال هستند تنظیم می‌شوند.

دستگاهی که حاوی chroot است و باید متصل شود.
گزینه‌هایی که باید به mount(8) ارسال شوند.
مکان chroot درون نقطه اتصال. این ویژگی امکان وجود چندین chroot را روی یک فایل‌سیستم واحد فراهم می‌کند.

نوع فایل‌سیستم پیوندی (union).
گزینه‌های اتصال فایل‌سیستم پیوندی.
دایرکتوری overlay فایل‌سیستم پیوندی (قابل نوشتن).
دایرکتوری underlay فایل‌سیستم پیوندی (فقط‌خواندنی).

دستگاه حاوی فایل‌سیستم ریشه chroot. این دستگاه معمولاً، اما نه لزوماً، همان دستگاهی است که متصل خواهد شد. برای مثال، برای یک snapshot در LVM، این دستگاه همان حجم منطقی (logical volume) اصلی خواهد بود.

نام snapshot برای ارسال به lvcreate(8).
نام دستگاه snapshot در LVM.
گزینه‌هایی که باید به lvcreate(8) ارسال شوند.

کلیدهای سفارشی تنظیم‌شده در schroot.conf به حروف بزرگ تبدیل شده و همان‌گونه که در schroot.conf(5) شرح داده شده در محیط مقداردهی می‌شوند.

دایرکتوری /etc/schroot/default شامل تنظیمات پیش‌فرضی است که توسط اسکریپت‌های برپایی استفاده می‌شوند.

فایل پیکربندی اصلی که توسط اسکریپت‌های برپایی خوانده می‌شود. ساختار این فایل در schroot-script-config(5) شرح داده شده است. این مقدار پیش‌فرض برای کلید script-config است. توجه داشته باشید که این فایل قبلاً با نام /etc/schroot/script-defaults شناخته می‌شد. فایل‌های زیر به طور پیش‌فرض ارجاع داده می‌شوند:
فهرستی از فایل‌ها برای کپی شدن از سیستم میزبان به درون chroot. توجه داشته باشید که این فایل قبلاً با نام /etc/schroot/copyfiles-defaults شناخته می‌شد.
فایلی با ساختار توصیف‌شده در fstab(5)، که برای متصل کردن فایل‌سیستم‌ها درون chroot استفاده می‌شود. مکان نقطه اتصال نسبت به ریشه chroot سنجیده می‌شود. توجه داشته باشید که این فایل قبلاً با نام /etc/schroot/mount-defaults شناخته می‌شد.
پایگاه‌های داده سیستمی (همان‌طور که در /etc/nsswitch.conf در سیستم‌های گنو/لینوکس توضیح داده شده است) برای کپی شدن از میزبان به درون chroot. توجه داشته باشید که این فایل قبلاً با نام /etc/schroot/nssdatabases-defaults شناخته می‌شد.

دایرکتوری /etc/schroot/setup.d حاوی اسکریپت‌های برپایی chroot است.

00check
چاپ اطلاعات عیب‌یابی (دیباگ) و انجام بررسی‌های صحت‌سنجی اولیه.
05file
استخراج (unpack)، پاک‌سازی و بسته‌بندی مجدد (repack) chrootهای مبتنی بر فایل.
05fsunion
ایجاد و حذف فایل‌سیستم‌های پیوندی (union).
05lvm
ایجاد و حذف snapshotهای LVM.
10mount
اتصال (mount) و جداسازی (unmount) فایل‌سیستم‌ها.
15binfmt
راه‌اندازی شبیه‌ساز کاربر QEMU با استفاده از binfmt-support. این کار امکان استفاده شفاف از یک chroot برای معماری پردازنده (CPU) متفاوت را فراهم می‌آورد و جایگزینی برای کامپایل متقاطع یا شبیه‌سازی کل ماشین است.
15killprocs
کشتن (kill) فرایندهایی که هنگام پایان یک نشست هنوز در داخل chroot در حال اجرا هستند، که در غیر این صورت مانع از جداسازی فایل‌سیستم‌ها و پاک‌سازی سایر منابع می‌شوند.
20copyfiles
کپی کردن فایل‌ها از سیستم میزبان به داخل chroot. برای نمونه، پیکربندی شبکه با کپی کردن hosts و resolv.conf.
20nssdatabases
پیکربندی پایگاه‌های داده سیستمی با کپی کردن passwd، shadow، group و غیره به داخل chroot.
50chrootname
تنظیم نام chroot (/etc/debian_chroot) در داخل chroot. این مقدار ممکن است توسط اعلان شل (shell prompt) برای نمایش chroot فعلی استفاده شود.

Roger Leigh.

Copyright © 2005-2012 Roger Leigh <rleigh@codelibre.net>

schroot یک نرم‌افزار آزاد است: شما می‌توانید آن را تحت شرایط «اجازه‌نامه عمومی همگانی گنو» (GNU General Public License) که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۳ این اجازه‌نامه یا (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده و/یا تغییر دهید.

schroot(1), fstab(5), schroot.conf(5), schroot-script-config(5), run-parts(8).

14 Aug 2022 Version 1.6.13