| SCHROOT-SETUP(5) | Debian sbuild | SCHROOT-SETUP(5) |
نام (NAME)
schroot-setup - اسکریپتهای راهاندازی chroot در schroot
توضیحات (DESCRIPTION)
دستور 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 باشند، زیرا ممکن است بیش از یک بار اجرا شوند، برای نمونه هنگام بروز خطا.
محیط (ENVIRONMENT)
متغیرهای عمومی (General variables)
- AUTH_USER
- نام کاربری کاربری که دستور درون chroot با دسترسی او اجرا خواهد شد.
- CHROOT_NAME
- نام chroot. توجه داشته باشید که این نام chroot اصلی پیش از ایجاد نشست است؛ احتمالاً شما به SESSION_ID نیاز دارید.
- LIBEXEC_DIR
- دایرکتوریای که برنامههای کمکی در آن قرار دارند.
- MOUNT_DIR
- دایرکتوریای که chrootهای غیر فایلسیستمی در آن متصل (mount) میشوند (مانند دستگاههای بلوکی و snapshotهای LVM).
- PID
- شناسه فرایند (PID) مربوط به فرایند schroot.
- PLATFORM
- پلتفرم سیستمعاملی که schroot روی آن در حال اجرا است. این متغیر میتواند در صورت نیاز برای اعمال رفتارهای وابسته به پلتفرم در اسکریپتهای برپایی استفاده شود. توجه داشته باشید که متغیرهای HOST احتمالاً موارد مورد نیاز شما هستند. در چارچوب schroot، پلتفرم پیکربندی و رفتار پشتیبانیشده برای یک معماری معین است و ممکن است در میان معماریهای مختلف یکسان باشد.
- SESSION_ID
- شناسه نشست (session identifier).
- VERBOSE
- در صورتی که فقط پیامهای خطا باید چاپ شوند روی ‘quiet’ تنظیم میشود، اگر سایر پیامها نیز مجاز به چاپ باشند روی ‘normal’، و اگر تمام پیامها باید چاپ شوند روی ‘verbose’. این متغیر قبلاً AUTH_VERBOSITY نامیده میشد.
- CHROOT_SESSION_CREATE
- اگر نشستی قرار است ایجاد شود برابر ‘true’ و در غیر این صورت ‘false’ تنظیم میشود.
- CHROOT_SESSION_CLONE
- اگر یک نشست قرار است کلون (همانندسازی) شود روی ‘true’ تنظیم میشود، در غیر این صورت ‘false’.
- CHROOT_SESSION_PURGE
- اگر یک نشست قرار است پاکسازی کامل (purge) شود روی ‘true’ تنظیم میشود، در غیر این صورت ‘false’.
- CHROOT_SESSION_SOURCE
- اگر نشستی قرار است از یک chroot مبدأ (source) ایجاد شود روی ‘true’ تنظیم میشود، در غیر این صورت ‘false’.
- CHROOT_TYPE
- نوع chroot. این متغیر برای محدود کردن یک وظیفه برپایی به انواع خاصی از chroot (مانند فقط دستگاههای بلوکی یا snapshotهای LVM) مفید است.
- CHROOT_NAME
- نام chroot. این متغیر برای محدود کردن یک وظیفه برپایی به یک chroot خاص یا مجموعهای از chrootها مفید است.
- CHROOT_ALIAS
- نام مستعار (alias) استفادهشده برای انتخاب chroot. این متغیر برای تخصیص یک وظیفه برپایی بر اساس یکی از نامهای مستعار جایگزین یا نام پیشفرض chroot مفید است. برای نمونه، میتوان از آن برای تعیین مخازن اضافی در /etc/apt/sources.list استفاده کرد، مانند نام مستعار stable-security برای یک chroot پایدار، یا نام مستعار experimental برای یک chroot ناپایدار.
- CHROOT_DESCRIPTION
- توضیحات chroot.
- CHROOT_MOUNT_LOCATION
- مکانی برای متصل کردن chroot. این مقدار برای ایجاد نقطه اتصال (mount point) و سوار کردن استفاده میشود.
- CHROOT_LOCATION
- مکان chroot درون نقطه اتصال. این متغیر اجازه میدهد چندین chroot روی یک فایلسیستم واحد وجود داشته باشند. این متغیر برای تمام انواع chrootهای قابل اتصال تنظیم میشود.
- CHROOT_PATH
- مسیر مطلق به chroot. این مسیر معمولاً حاصل الحاق CHROOT_MOUNT_LOCATION و CHROOT_LOCATION است. این مسیری است که باید برای دسترسی به chrootها استفاده شود.
متغیرهای chrootهای ساده و دایرکتوری (Plain and directory chroot variables)
این انواع chroot تنها از متغیرهای عمومی استفاده میکنند.
متغیرهای فایل (File variables)
- CHROOT_FILE
- فایلی که حاوی فایلهای chroot است.
- CHROOT_FILE_REPACK
- برای بستهبندی مجدد chroot در یک فایل آرشیو هنگام پایان نشست روی ‘true’ تنظیم میشود، در غیر این صورت ‘false’.
متغیرهای chrootهای قابل اتصال (Mountable chroot variables)
این متغیرها تنها برای انواع chrootهایی که مستقیماً قابل اتصال هستند تنظیم میشوند.
- CHROOT_MOUNT_DEVICE
- دستگاهی که حاوی chroot است و باید متصل شود.
- CHROOT_MOUNT_OPTIONS
- گزینههایی که باید به mount(8) ارسال شوند.
- CHROOT_LOCATION
- مکان chroot درون نقطه اتصال. این ویژگی امکان وجود چندین chroot را روی یک فایلسیستم واحد فراهم میکند.
متغیرهای فایلسیستم پیوندی (Filesystem union variables)
- CHROOT_UNION_TYPE
- نوع فایلسیستم پیوندی (union).
- CHROOT_UNION_MOUNT_OPTIONS
- گزینههای اتصال فایلسیستم پیوندی.
- CHROOT_UNION_OVERLAY_DIRECTORY
- دایرکتوری overlay فایلسیستم پیوندی (قابل نوشتن).
- CHROOT_UNION_UNDERLAY_DIRECTORY
- دایرکتوری underlay فایلسیستم پیوندی (فقطخواندنی).
متغیرهای دستگاه بلوکی (Block device variables)
- CHROOT_DEVICE
- دستگاه حاوی فایلسیستم ریشه chroot. این دستگاه معمولاً، اما نه لزوماً، همان دستگاهی است که متصل خواهد شد. برای مثال، برای یک snapshot در LVM، این دستگاه همان حجم منطقی (logical volume) اصلی خواهد بود.
متغیرهای snapshot در LVM (LVM snapshot variables)
- CHROOT_LVM_SNAPSHOT_NAME
- نام snapshot برای ارسال به lvcreate(8).
- CHROOT_LVM_SNAPSHOT_DEVICE
- نام دستگاه snapshot در LVM.
- CHROOT_LVM_SNAPSHOT_OPTIONS
- گزینههایی که باید به lvcreate(8) ارسال شوند.
متغیرهای سفارشی (Custom variables)
کلیدهای سفارشی تنظیمشده در schroot.conf به حروف بزرگ تبدیل شده و همانگونه که در schroot.conf(5) شرح داده شده در محیط مقداردهی میشوند.
فایلها (FILES)
پیکربندی اسکریپت برپایی (Setup script configuration)
دایرکتوری /etc/schroot/default شامل تنظیمات پیشفرضی است که توسط اسکریپتهای برپایی استفاده میشوند.
- config
- فایل پیکربندی اصلی که توسط اسکریپتهای برپایی خوانده میشود. ساختار این فایل در schroot-script-config(5) شرح داده شده است. این مقدار پیشفرض برای کلید script-config است. توجه داشته باشید که این فایل قبلاً با نام /etc/schroot/script-defaults شناخته میشد. فایلهای زیر به طور پیشفرض ارجاع داده میشوند:
- copyfiles
- فهرستی از فایلها برای کپی شدن از سیستم میزبان به درون chroot. توجه داشته باشید که این فایل قبلاً با نام /etc/schroot/copyfiles-defaults شناخته میشد.
- fstab
- فایلی با ساختار توصیفشده در fstab(5)، که برای متصل کردن فایلسیستمها درون chroot استفاده میشود. مکان نقطه اتصال نسبت به ریشه chroot سنجیده میشود. توجه داشته باشید که این فایل قبلاً با نام /etc/schroot/mount-defaults شناخته میشد.
- nssdatabases
- پایگاههای داده سیستمی (همانطور که در /etc/nsswitch.conf در سیستمهای گنو/لینوکس توضیح داده شده است) برای کپی شدن از میزبان به درون chroot. توجه داشته باشید که این فایل قبلاً با نام /etc/schroot/nssdatabases-defaults شناخته میشد.
اسکریپتهای برپایی (Setup scripts)
دایرکتوری /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 فعلی استفاده شود.
نویسندگان (AUTHORS)
Roger Leigh.
کپیرایت (COPYRIGHT)
Copyright © 2005-2012 Roger Leigh <rleigh@codelibre.net>
schroot یک نرمافزار آزاد است: شما میتوانید آن را تحت شرایط «اجازهنامه عمومی همگانی گنو» (GNU General Public License) که توسط بنیاد نرمافزارهای آزاد منتشر شده است، چه نسخه ۳ این اجازهنامه یا (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده و/یا تغییر دهید.
همچنین ببینید (SEE ALSO)
schroot(1), fstab(5), schroot.conf(5), schroot-script-config(5), run-parts(8).
| 14 Aug 2022 | Version 1.6.13 |