| (5) | File Formats Manual | (5) |
نام (NAME)
alpm-install-scriptlet - یک اسکریپت نصب سفارشی برای بستههای مبتنی بر ALPM.
توضیحات (DESCRIPTION)
یک اسکریپت شل اختیاری که اقدامات سفارشی را برای اجرا در طول فرایند نصب، ارتقا یا حذف بسته تعریف میکند.
توابع شل در ریشهٔ (/) سیستم اجرا میشوند، بنابراین تمام مسیرها درون آن باید مطلق باشند.
چنین فایلهایی در ریشهٔ بستههای 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
پس از حذف بسته اجرا میشود، با نسخهٔ قدیمی بسته به عنوان آرگومان آن.
مثالها (EXAMPLES)
نمونهای از مشخص کردن اسکریپت نصب در فایل 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"
}
همچنین ببینید (SEE ALSO)
bash(1), sh(1), PKGBUILD(5), alpm-package-version(7), pacman(8), makepkg(8)