(5) File Formats Manual (5)

alpm-install-scriptlet - یک اسکریپت نصب سفارشی برای بسته‌های مبتنی بر ALPM.

یک اسکریپت شل اختیاری که اقدامات سفارشی را برای اجرا در طول فرایند نصب، ارتقا یا حذف بسته تعریف می‌کند.

توابع شل در ریشهٔ (/) سیستم اجرا می‌شوند، بنابراین تمام مسیرها درون آن باید مطلق باشند.

چنین فایل‌هایی در ریشهٔ بسته‌های ALPM قرار دارند و نام آن‌ها .INSTALL است.

یک alpm-install-scriptlet ممکن است شامل صفر یا چند تابع شل مشخص باشد که اقداماتی را برای رویدادهای مختلف چرخهٔ حیات بسته تعریف می‌کنند. تمامی این توابع اختیاری هستند و تنها توابعی که برای یک بسته خاص لازم هستند، می‌توانند گنجانده شوند.

این اسکریپت می‌تواند به زبان شلی نوشته شود که از گزینهٔ خط فرمان -c و فراخوانی توابع نام‌گذاری‌شده با آرگومان‌های اضافی از طریق رابط خط فرمان مفسر پشتیبانی می‌کند.

توجه داشته باشید که مفسر شل مورد استفاده توسط نرم‌افزار مدیریت بسته برای اجرای اسکریپت به صورت سراسری تعریف شده است (برای مثال به ازای هر توزیع). هیچ شِبنگی (shebang) در اسکریپت استفاده نمی‌شود و تصمیم‌گیری دربارهٔ این که کدام شل برای اجرای آن استفاده شود بر اساس فراداده‌های بسته نیست، بلکه معمولاً در سطح توزیع یا سیستم تنظیم می‌شود. این بدان معناست که مفسر شل را نمی‌توان برای هر بسته به صورت جداگانه تغییر داد.

توابع موجود در زیر فهرست شده‌اند. آن‌ها یک یا دو آرگومان می‌پذیرند که نسخه‌های بسته هستند و به صورت alpm-package-version ارائه می‌شوند.

pre_install

پیش از نصب بسته اجرا می‌شود، با نسخهٔ جدید بسته به عنوان آرگومان آن.

post_install

پس از نصب بسته اجرا می‌شود، با نسخهٔ جدید بسته به عنوان آرگومان آن.

pre_upgrade

پیش از ارتقای بسته اجرا می‌شود، با آرگومان‌های زیر:

1.
نسخهٔ جدید بسته
2.
نسخهٔ قدیمی بسته
post_upgrade

پس از ارتقای بسته اجرا می‌شود، با آرگومان‌های زیر:

1.
نسخهٔ جدید بسته
2.
نسخهٔ قدیمی بسته
pre_remove

پیش از حذف بسته اجرا می‌شود، با نسخهٔ قدیمی بسته به عنوان آرگومان آن.

post_remove

پس از حذف بسته اجرا می‌شود، با نسخهٔ قدیمی بسته به عنوان آرگومان آن.

نمونه‌ای از مشخص کردن اسکریپت نصب در فایل PKGBUILD:

install=example.install

نمونه‌ای از یک اسکریپت پایهٔ example.install:

pre_install() {
    echo "Preparing to install package version $1"
}
post_install() {
    echo "Package version $1 installed"
}
pre_upgrade() {
    echo "Preparing to upgrade from version $2 to $1"
}
post_upgrade() {
    echo "Upgraded from version $2 to $1"
}
pre_remove() {
    echo "Preparing to remove package version $1"
}
post_remove() {
    echo "Package version $1 removed"
}

bash(1), sh(1), PKGBUILD(5), alpm-package-version(7), pacman(8), makepkg(8)