ALPM-HOOKS(5)

الاسم
alpm-hooks - تنسيق ملف خطاطيف أل بي إم

موجز

[Trigger] (Required, Repeatable)
Operation = Install|Upgrade|Remove (Required, Repeatable)
Type = Path|Package (Required)
Target = <Path|PkgName> (Required, Repeatable)

[Action] (Required)
Description = ... (Optional)
When = PreTransaction|PostTransaction (Required)
Exec = <Command> (Required)
Depends = <PkgName> (Optional)
AbortOnFail (Optional, PreTransaction only)
NeedsTargets (Optional)

الوصف

يوفر libalpm القدرة على تحديد خطافات لتشغيلها قبل المعاملات أو بعدها بناءً على الحزم و/أو الملفات المعدلة. تتكون الخطافات من قسم [Action] واحد يصف الإجراء المراد تشغيله وقسم [Trigger] واحد أو أكثر يصف المعاملات التي ينبغي تشغيله لأجلها.

تُقرأ الخطافات من ملفات تقع في دليل خطافات النظام /usr/share/libalpm/hooks، وأدلة مخصصة إضافية محددة في pacman.conf(5) (المبدئي هو /etc/pacman.d/hooks). يُشترط أن تنتهي أسماء الملفات باللاحقة ".hook". تُشغّل الخطافات بترتيب أبجدي حسب أسماء ملفاتها، حيث يتجاهل الترتيب اللاحقة.

المحفزات

يجب أن تحتوي الخطافات على قسم [Trigger] واحد على الأقل يحدد المعاملات التي ستتسبب في تشغيل الخطاف. إذا عُرّفت أقسام ملقنات متعددة، فسيُشغّل الخطاف إذا طابقت المعاملة أيًّا من الملقنات.

Operation = Install|Upgrade|Remove
    اختر نوع العملية لمطابقة الأهداف معها. يمكن تحديده عدة مرات. تُعد التثبيتات ترقيةً إذا كانت الحزمة أو الملف موجودًا بالفعل على النظام بغض النظر عما إذا كان إصدار الحزمة الجديد أكبر فعليًّا من الإصدار المثبت حاليًّا. بالنسبة لملقنات المسار (Path)، يصح هذا حتى لو تغيرت ملكية الملف من حزمة إلى أخرى. مطلوب.

Type = Path|Package
    اختر ما إذا كانت الأهداف ستُطابق مع حزم المعاملة أم ملفاتها. انظر قسم التحذيرات (CAVEATS) لملاحظات خاصة بشأن ملقنات المسار (Path). يُعد File اسمًا بديلًا مهجورًا لـ Path وسيجري إزالته في إصدار مستقبلي. مطلوب.

Target = <path|package>
    المسار أو اسم الحزمة للمطابقة مع المعاملة النشطة. تشير المسارات إلى الملفات في أرشيف الحزمة؛ يجب ألا يُدرج جذر التثبيت في المسار. يُسمح بأنماط glob على غرار الصدفة. من الممكن عكس المطابقات بإضافة علامة تعجب قبل الهدف. يمكن تحديدها عدة مرات. مطلوب.

الإجراءات

Description = ...
    وصف اختياري يصف الإجراء الذي يتخذه الخطاف لاستخدامه في مخرجات الواجهة الأمامية.

Exec = <command>
    الأمر المراد تشغيله. تُفصل وسائط الأمر عند المسافات البيضاء. ينبغي إحاطة القيم التي تحتوي على مسافات بيضاء بعلامات اقتباس. مطلوب.

When = PreTransaction|PostTransaction
    وقت تشغيل الخطاف. مطلوب.

Depends = <حزمة>
    حزم يجب تثبيتها لتشغيل الخطاف. يمكن تحديدها عدة مرات.

AbortOnFail
    يؤدي إلى إجهاض المعاملة إذا خرج الخطاف بقيمة غير صفرية. ينطبق فقط على خطافات PreTransaction.

NeedsTargets
    يؤدي إلى تمرير قائمة أهداف المشغل المطابقة إلى الخطاف الجاري على stdin.

تجاوز الخطافات

يمكن تجاوز الخطافات بوضع ملف بنفس الاسم في دليل خطاف ذي أولوية أعلى. يمكن تعطيل الخطافات بتجاوزها برابط رمزي إلى /dev/null.

أمثلة

    # فرض مزامنة الأقراص لتقليل خطر تلف البيانات

    [Trigger]
    Operation = Install
    Operation = Upgrade
    Operation = Remove
    Type = Package
    Target = *

    [Action]
    Depends = coreutils
    When = PostTransaction
    Exec = /usr/bin/sync

تحذيرات

هناك حالات قد تعمل فيها مشغلات المسار بطرق غير متوقعة. يتم تشغيل الخطافات باستخدام قائمة ملفات الحزمة المثبتة أو المحدثة أو المحذوفة. عند تثبيت أو تحديث ملف يُستخرج بامتداد .pacnew، يُستخدم اسم الملف الأصلي في تشغيل الخطاف. عند إزالة حزمة، يمكن لجميع الملفات المملوكة لتلك الحزمة تشغيل خطاف سواء كانت موجودة فعليًا على نظام الملفات قبل إزالة الحزمة أم لا.

لن تعمل خطافات PostTransaction إذا فشلت المعاملة في الإكمال لأي سبب.

راجع موقع pacman الإلكتروني على https://archlinux.org/pacman/ للحصول على معلومات حديثة حول pacman والأدوات المرتبطة به.

العلل

علل؟ لا بد أنك تمزح؛ لا توجد علل في هذا البرنامج. ولكن إذا صدف وكنا مخطئين، فيُرجى الإبلاغ عنها في متتبع المشكلات في https://gitlab.archlinux.org/pacman/pacman/-/issues مع معلومات محددة مثل سطر الأوامر الخاص بك، وطبيعة العلة، وحتى قاعدة بيانات الحزمة إذا كان ذلك يساعد.

المؤلفون

المصينون الحاليون:

    • آلان مكراي <allan@archlinux.org>

    • أندرو غريغوري <andrew.gregory.8@gmail.com>

    • Morgan Adamiec <morganamilo@archlinux.org>

المساهمون الرئيسون السابقون:

    • Judd Vinet <jvinet@zeroflux.org>

    • أوريليان فوريه <aurelien@archlinux.org>

    • آرون غريفين <aaron@archlinux.org>

    • دان ماكغي <dan@archlinux.org>

    • Xavier Chantry <shiningxc@gmail.com>

    • Nagy Gabor <ngaba@bibl.u-szeged.hu>

    • ديف رايزنر <dreisner@archlinux.org>

    • إيلي شوارتز <eschwartz@archlinux.org>

للمساهمين الإضافيين، استخدم git shortlog -s على مستودع pacman.git.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.