| MAKEPKG-TEMPLATE(1) | راهنمای Pacman | MAKEPKG-TEMPLATE(1) |
نام (NAME)
makepkg-template - ابزار الگوسازی برای ساخت بسته
خلاصه دستور (SYNOPSIS)
makepkg-template [options]
توضیحات (DESCRIPTION)
makepkg-template اسکریپتی برای آسانتر کردن نگهداری چندین فایل PKGBUILD مشابه است. این ابزار به شما امکان میدهد بیشتر کدهای PKGBUILD را به یک فایل الگو (template) منتقل کنید و با استفاده از نشانگرها (markers)، در صورت تغییر الگو، امکان بهروزرسانی درجا (in-place) فایلهای PKGBUILD موجود را فراهم میسازد.
فایلهای الگو میتوانند شامل هر کدی باشند که در یک PKGBUILD مجاز است. میتوانید آنها را مانند فایلهای خارجی در نظر بگیرید که با "." یا "source" گنجانده میشوند، اما این فایلها توسط makepkg-template درون خود PKGBUILD جایگذاری (inline) میشوند تا هنگام ساخت بسته، نیازی به فایل الگو نداشته باشید.
نشانگرها کامنتهای بش (bash) به شکل زیر هستند:
# template start; key=value; key2=value2; ...
و
# template end;
کلیدهایی که در حال حاضر استفاده میشوند عبارتند از: name (اجباری) و version. نامهای الگو محدود به نویسههای الفبایی-عددی، "@"، "+"، "."، "-" و "_" هستند. نسخهها نیز تنها به اعداد و "." محدود میشوند.
برای ایجاد اولیه، یک میانبر تکخطی وجود دارد که نیازی به نشانگر پایانی ندارد:
# template input; key=value;
استفاده از این میانبر باعث میشود makepkg-template در اولین اجرا، آن را با نشانگرهای آغاز و پایان و کدهای الگو جایگزین کند.
فایلهای الگو باید در یک شاخه ذخیره شوند و نام فایلها باید به صورت "$template_name-$version.template" باشد و یک پیوند نمادین (symlink) به نام "$template_name.template" به جدیدترین الگو اشاره کند. اگر نسخه در نشانگر مشخص نشده باشد، makepkg-template بهطور خودکار از مقصدِ "$template_name.template" استفاده میکند، در غیر این صورت نسخه مشخصشده استفاده خواهد شد. این امر در صورتی که به الگو اعتماد داشته باشید، راستیآزمایی فایلهای PKGBUILD غیرقابلاعتماد را آسانتر میکند. شما کدهای غیرالگو را بررسی میکنید و سپس دستوری شبیه به این را اجرا مینمایید:
diff -u <(makepkg-template -o -) PKGBUILD
فایلهای الگو همچنین ممکن است شامل نشانگرهایی باشند که منجر به الگوهای تودرتو در PKGBUILD حاصل شوند. اگر در یک الگو از نشانگرها استفاده میکنید، لطفاً نسخهای را که با آن استفاده/آزمایش کردهاید در نشانگر start/input تعیین کنید تا دیگران بتوانند بهدرستی آن را از روی الگوها بازسازی کنند.
گزینهها (OPTIONS)
-p, --input <build script>
-o, --output <build script>
-n, --newest
--template-dir <dir>
مثال PKGBUILD (EXAMPLE PKGBUILD)
pkgname=perl-config-simple
pkgver=4.58
pkgrel=1
pkgdesc="simple configuration file class"
arch=('any')
license=('PerlArtistic' 'GPL')
depends=('perl')
source=("http://search.cpan.org/CPAN/authors/id/S/SH/SHERZODR/Config-Simple-${pkgver}.tar.gz")
sha256sums=('dd9995706f0f9384a15ccffe116c3b6e22f42ba2e58d8f24ed03c4a0e386edb4')
_distname="Config-Simple"
# template start; name=perl-module; version=1.0;
_distdir="${_distname}-${pkgver}"
url="https://metacpan.org/release/${_distname}"
options+=('!emptydirs')
build() {
cd "$srcdir/$_distdir"
perl Makefile.PL INSTALLDIRS=vendor
make
}
check() {
cd "$srcdir/$_distdir"
make test
}
package() {
cd "$srcdir/$_distdir"
make DESTDIR="$pkgdir" install
}
# template end;
همچنین ببینید (SEE ALSO)
برای اطلاعات بهروز در مورد pacman و ابزارهای مرتبط با آن، به وبگاه pacman در https://archlinux.org/pacman مراجعه کنید.
اشکالات (BUGS)
باگ؟ حتماً شوخی میکنید؛ هیچ باگی در این نرمافزار وجود ندارد. اما اگر احیاناً اشتباه کرده باشیم، لطفاً آنها را با اطلاعات مشخصی مانند خط فرمان، ماهیت باگ و حتی پایگاه داده بسته در صورت امکان، در سامانه ردیابی مشکلات در https://gitlab.archlinux.org/pacman/pacman/-/issues گزارش دهید.
نویسندگان (AUTHORS)
نگهدارندگان فعلی:
مشارکتکنندگان عمده پیشین:
برای مشارکتکنندگان دیگر، از git shortlog -s روی مخزن pacman.git استفاده کنید.
| 2026-05-06 | Pacman 7.1.0 |