.\" -*- mode: troff; coding: utf-8 -*- .TH "ALPM-MTREE" "5" "2024-03-04" "Arch Linux" "راهنمای فایل‌های پیکربندی" .SH "نام (NAME)" ALPM-MTREE \- قالب توصیف سلسله‌مراتب دایرکتوری بسته‌ها .SH "توضیحات (DESCRIPTION)" .LP قالب .B mtree یک قالب متنی است که سلسله‌مراتب و متادیتای فایل‌ها در یک دایرکتوری را توصیف می‌کند. .PP قالب .B mtree قالبی شناخته‌شده است که برای مثال می‌تواند برای دستورالعمل‌های نصب یا جهت اعتبارسنجی متادیتای فایل‌ها و سلسله‌مراتب یک دایرکتوری به کار رود. .PP قالب .B ALPM-MTREE از مشخصات رسمی .B mtree پیروی می‌کند. با این حال، فایل‌های .B .MTREE که در چارچوب بسته‌های ALPM استفاده می‌شوند، تنها از زیرمجموعه‌ای از قالب رسمی .B mtree بهره می‌برند که در حیطه بسته‌بندی کاربرد دارد. .SS "ویژگی‌ها (Properties)" .LP فایل‌های .B .MTREE تولیدشده توسط .B makepkg تنها شامل ویژگی‌های زیر هستند: .IP "\(bu" 3 \f(CRtype\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRuid\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRgid\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRmode\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRtime\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRsize\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRmd5\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRsha256\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRlink\fR .LP علاوه بر این، از آنجا که فایل‌های .B mtree در چارچوب بسته‌بندی Arch Linux استفاده می‌شوند، همیشه به فایل‌های درون بسته‌های Arch Linux مربوط هستند. به همین دلیل، تمام مسیرهای درون یک .B ALPM-MTREE باید نسبت به بسته نسبی باشند، به‌جز مقصدهای پیوند که ممکن است به خارج از بسته اشاره کنند. .SS "ویژگی نوع مسیر (Path Type Property)" .LP برخلاف تمام انواع موجود در .BR mtree ، قالب .B ALPM-MTREE تنها سه نوع فایل را مجاز می‌داند: .IP "\(bu" 3 \f(CRdir\fR یک دایرکتوری .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRfile\fR یک فایل .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRlink\fR یک پیوند نمادین (symbolic link) .LP سایر انواع ممنوع هستند، زیرا نباید در بسته گنجانده شوند. .SS "فیلدهای الزامی بر پایه نوع فایل (Required Fields by File Type)" .LP قالب .B ALPM-MTREE تنظیم مقادیر مشخصی را برای برخی انواع فایل الزامی می‌داند، چیزی که در مشخصات .B mtree اجباری نشده است. .PP نوع مسیر .B dir نیازمند تنظیم ویژگی‌های زیر است: .IP "\(bu" 3 \f(CRpath\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRuid\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRgid\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRmode\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRtime\fR .LP نوع مسیر .B file نیازمند تنظیم ویژگی‌های زیر است: .IP "\(bu" 3 \f(CRpath\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRuid\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRgid\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRmode\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRsize\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRmd5_digest\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRsha256_digest\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRtime\fR .LP نوع مسیر .B link نیازمند تنظیم ویژگی‌های زیر است: .IP "\(bu" 3 \f(CRpath\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRuid\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRgid\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRmode\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRlink\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRtime\fR .SS "کاربرد در Pacman (Usage in Pacman)" .LP در Pacman، فایل‌های .B ALPM-MTREE صرفاً جهت اعتبارسنجی این‌که فایل‌های نصب‌شده با فایل‌های اصلی یکسان هستند بدون نیاز به نگهداری بسته اصلی استفاده می‌شوند. .PP فایل‌های .B .MTREE هنگام ایجاد بسته‌ها از طریق .B makepkg به‌طور ضمنی تولید شده و درون بسته گنجانده می‌شوند. فایل .B .MTREE فشرده‌شده با gzip در ریشه بسته‌های مبتنی بر ALPM قرار دارد. .SS "نسخه‌بندی (Versioning)" .LP قالب .B ALPM-MTREE در چندین نسخه وجود دارد. اطلاعات موجود در این سند مربوط به نسخه ۲ است که نسخه فعلی به شمار می‌رود. این نسخه با انتشار pacman 6.1.0 در تاریخ 2024-03-04 معرفی شده است. .SS "تغییرات نسبت به نسخه پیشین (Changes since the last version)" .LP فیلد .B md5 دیگر تولید نمی‌شود، که این امر عملاً یک تغییر ناسازگار با نسخه‌های پیشین (breaking change) محسوب می‌شود. .SH "مثال‌ها (EXAMPLES)" .LP .nf #mtree /set type=file uid=0 gid=0 mode=644 \&./.BUILDINFO time=1696727741.0 size=5574 sha256digest=708be566788a6a2712bcd40425d93761569ede07371781374edb1f22e2a3eb96 \&./.PKGINFO time=1696727741.0 size=830 sha256digest=3aa17bec02b34c157e7c739c62e0e37a9d19f1459d404d7c6f2c14c6008127cd /set mode=755 type=dir \&./usr time=1731613789.0 \&./usr/bin time=1731613789.0 \&./usr/bin/resolvconf time=1731613789.0 mode=777 type=link link=resolvectl .fi .SS "تولید (Generation)" .LP فایل‌های mtree متعلق به ALPM با اجرای دستور زیر تولید می‌شوند: .LP .nf bsdtar \e --format=mtree \e --options='!all,use-set,type,uid,gid,mode,time,size,sha256,link' \e $folder .fi .SS "کاربردها (Usages)" .LP در چارچوب ALPM و .BR pacman ، هدف اصلی فایل .B mtree فراهم ساختن روشی با کارایی بالا جهت دریافت متادیتای فایل‌های یک بسته، بدون نیاز به استخراج و خواندن کل بسته است. .PP سپس این داده‌ها برای بررسی تطابق فایل‌های نصب‌شده روی سیستم هدف با فایل‌های اصلی بسته به کار می‌روند. برای جزئیات بیشتر به قابلیت بررسی پرسمان (query check) در .B pacman مراجعه فرمایید. .SH "همچنین ببینید (SEE ALSO)" .LP .BR mtree (5), .BR makepkg (8), .BR pacman (8)