'\" t .\" Title: alpm-hooks .\" Author: [بخش "نویسندگان" را ببینید] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-05-06 .\" Manual: راهنمای Pacman .\" Source: Pacman 7.1.0 .\" Language: Persian .\" .TH "ALPM\-HOOKS" "5" "2026\-05\-06" "Pacman 7\&.1\&.0" "راهنمای Pacman" .\" ----------------------------------------------------------------- .\" * 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)" alpm-hooks \- فرمت فایل هوک alpm .SH "خلاصه دستور (SYNOPSIS)" .sp .nf [Trigger] (الزامی، قابل تکرار) Operation = Install|Upgrade|Remove (الزامی، قابل تکرار) Type = Path|Package (الزامی) Target = (الزامی، قابل تکرار) [Action] (الزامی) Description = \&.\&.\&. (اختیاری) When = PreTransaction|PostTransaction (الزامی) Exec = (الزامی) Depends = (اختیاری) AbortOnFail (اختیاری، فقط PreTransaction) NeedsTargets (اختیاری) .fi .SH "توضیحات (DESCRIPTION)" .sp کتابخانه libalpm امکان تعیین هوک‌هایی را فراهم می‌کند که بر اساس بسته‌ها و/یا فایل‌های در حال تغییر، قبل یا بعد از تراکنش‌ها اجرا شوند\&. هوک‌ها از یک بخش منفرد \fI[Action]\fR که عملیات مورد اجرا را شرح می‌دهد، و یک یا چند بخش \fI[Trigger]\fR که مشخص می‌کنند هوک باید برای چه تراکنش‌هایی اجرا شود، تشکیل شده‌اند\&. .sp هوک‌ها از فایل‌های موجود در دایرکتوری هوک‌های سیستم /usr/share/libalpm/hooks و دایرکتوری‌های سفارشی دیگری که در \fBpacman.conf\fR(5) مشخص شده‌اند (پیش‌فرض /etc/pacman\&.d/hooks است) خوانده می‌شوند\&. نام این فایل‌ها باید دارای پسوند «\&.hook» باشد\&. هوک‌ها به ترتیب الفبایی نام فایل‌هایشان اجرا می‌شوند که در این ترتیب‌بندی، پسوند فایل نادیده گرفته می‌شود\&. .SH "محرک‌ها (TRIGGERS)" .sp هوک‌ها باید دست‌کم شامل یک بخش \fI[Trigger]\fR باشند که مشخص می‌کند کدام تراکنش‌ها باعث اجرای هوک خواهند شد\&. اگر چند بخش محرک تعریف شده باشد، در صورتی که تراکنش با \fBهر یک\fR از محرک‌ها مطابقت داشته باشد، هوک اجرا خواهد شد\&. .PP \fBOperation =\fR Install|Upgrade|Remove .RS 4 نوع عملیاتی که هدف‌ها باید با آن مطابقت داده شوند را انتخاب می‌کند\&. می‌تواند چندین بار مشخص شود\&. در صورتی که بسته یا فایل از پیش روی سیستم موجود باشد، عمل نصب صرف‌نظر از اینکه نسخه بسته جدید واقعاً از نسخه نصب‌شده فعلی بالاتر باشد یا خیر، یک ارتقا در نظر گرفته می‌شود\&. برای محرک‌های Path، این موضوع حتی در صورتی که مالکیت فایل از بسته‌ای به بسته دیگر تغییر کند نیز صادق است\&. الزامی\&. .RE .PP \fBType =\fR Path|Package .RS 4 مشخص می‌کند که آیا هدف‌ها با بسته‌ها یا فایل‌های تراکنش مطابقت داده شوند\&. برای نکات ویژه پیرامون محرک‌های Path، بخش هشدارها (CAVEATS) را ببینید\&. \fIFile\fR یک نام مستعار منسوخ‌شده برای \fIPath\fR است و در انتشار آینده حذف خواهد شد\&. الزامی\&. .RE .PP \fBTarget =\fR .RS 4 مسیر یا نام بسته‌ای که باید با تراکنش فعال مطابقت داده شود\&. مسیرها به فایل‌های موجود در آرشیو بسته اشاره دارند؛ ریشه نصب \fBنباید\fR در مسیر گنجانده شود\&. الگوهای گلب (glob) به سبک شل مجاز هستند\&. معکوس کردن تطابق‌ها با قرار دادن یک علامت تعجب در ابتدای هدف امکان‌پذیر است\&. می‌تواند چندین بار مشخص شود، که تطابق‌های بعدی موارد قبلی را بازنویسی می‌کنند\&. الزامی\&. .RE .SH "عملیات (ACTIONS)" .PP \fBDescription =\fR \&... .RS 4 توضیحی اختیاری که عمل انجام‌شده توسط هوک را برای استفاده در خروجی رابط کاربری توصیف می‌کند\&. .RE .PP \fBExec =\fR .RS 4 دستوری که باید اجرا شود\&. آرگومان‌های دستور بر اساس نویسه‌های فاصله تفکیک می‌شوند\&. مقادیر حاوی فاصله باید درون علامت نقل‌قول قرار گیرند\&. الزامی\&. .RE .PP \fBWhen =\fR PreTransaction|PostTransaction .RS 4 زمان اجرای هوک را مشخص می‌کند\&. الزامی\&. .RE .PP \fBDepends =\fR .RS 4 بسته‌هایی که برای اجرای هوک باید نصب شده باشند\&. می‌تواند چندین بار مشخص شود\&. .RE .PP \fBAbortOnFail\fR .RS 4 در صورتی که اجرای هوک با کدی غیرصفر خاتمه یابد، موجب لغو تراکنش می‌شود\&. فقط برای هوک‌های PreTransaction اعمال می‌شود\&. .RE .PP \fBNeedsTargets\fR .RS 4 باعث می‌شود فهرست هدف‌های محرک مطابقت‌یافته از طریق \fIstdin\fR به هوک در حال اجرا ارسال شود\&. .RE .SH "بازنویسی هوک‌ها (OVERRIDING HOOKS)" .sp هوک‌ها را می‌توان با قرار دادن فایلی با همان نام در دایرکتوری هوکی با اولویت بالاتر بازنویسی کرد\&. همچنین می‌توان با بازنویسی آن‌ها به‌وسیله یک پیوند نمادین به \fI/dev/null\fR، آن‌ها را غیرفعال کرد\&. .SH "مثال‌ها (EXAMPLES)" .sp .if n \{\ .RS 4 .\} .nf # Force disks to sync to reduce the risk of data corruption [Trigger] Operation = Install Operation = Upgrade Operation = Remove Type = Package Target = * [Action] Depends = coreutils When = PostTransaction Exec = /usr/bin/sync .fi .if n \{\ .RE .\} .SH "هشدارها (CAVEATS)" .sp موقعیت‌هایی وجود دارد که در آن‌ها محرک‌های مسیر ممکن است به شیوه‌های غیرمنتظره‌ای عمل کنند\&. هوک‌ها با استفاده از فهرست فایل‌های بستهٔ نصب‌شده، ارتقایافته یا حذف‌شده راه‌اندازی می‌شوند\&. هنگام نصب یا ارتقای فایلی که با پسوند \fI\&.pacnew\fR استخراج می‌شود، از نام اصلی فایل برای راه‌اندازی هوک استفاده می‌شود\&. هنگام حذف یک بسته، همه فایل‌های متعلق به آن بسته می‌توانند یک هوک را راه‌اندازی کنند، چه قبل از حذف بسته واقعاً روی سیستم‌فایل وجود داشته باشند و چه نداشته باشند\&. .sp هوک‌های PostTransaction در صورتی که تراکنش به هر دلیلی کامل نشود، اجرا \fBنخواهند شد\fR\&. .sp برای اطلاعات به‌روز در مورد pacman و ابزارهای مرتبط با آن، به وب‌سایت pacman در نشانی https://archlinux\&.org/pacman مراجعه کنید\&. .SH "باگ‌ها (BUGS)" .sp باگ؟ حتماً شوخی می‌کنید؛ هیچ باگی در این نرم‌افزار وجود ندارد\&. اما اگر احیاناً اشتباه کرده باشیم، لطفاً آن‌ها را با اطلاعات مشخصی نظیر خط فرمان شما، ماهیت باگ و حتی در صورت مفید بودن، پایگاه‌داده بسته، به سامانه پیگیری اشکالات در https://gitlab\&.archlinux\&.org/pacman/pacman/\-/issues گزارش دهید\&. .SH "نویسندگان (AUTHORS)" .sp نگه‌دارندگان فعلی: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Allan McRae .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Andrew Gregory .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Morgan Adamiec .RE .sp مشارکت‌کنندگان عمده پیشین: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Judd Vinet .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Aurelien Foret .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Aaron Griffin .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dan McGee .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Xavier Chantry .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Nagy Gabor .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dave Reisner .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Eli Schwartz .RE .sp برای مشارکت‌کنندگان دیگر، از دستور git shortlog \-s در مخزن pacman\&.git استفاده کنید\&.