DLAGENTS=('protocol::/path/to/command [options]'
...)
عاملهای
بارگیری (download agents)
مورد
استفاده
برای واکشی
فایلهای
منبع
مشخصشده
با URL در فایل
PKGBUILD(5) را تنظیم
میکند.
گزینهها
را میتوان
برای هر
دستور نیز
مشخص کرد، و
هر پروتکلی
میتواند
یک عامل
بارگیری
داشته باشد.
هر
فاصلهای
در
آرگومانهای
گزینهها
باید گریز
داده شود (escape)
تا از جدا
شدن آنها
جلوگیری
گردد. چندین
مثال در makepkg.conf
پیشفرض
ارائه شده
است.
در صورت
وجود، %u با
نشانی URL
بارگیری
جایگزین
خواهد شد. در
غیر این
صورت،
نشانی URL
بارگیری در
انتهای
دستور قرار
خواهد گرفت.
در صورت
وجود، %o با
نام فایل
محلی به
علاوه
پسوند “.part”
جایگزین
میشود، که
به makepkg امکان
میدهد
ادامه
بارگیری
فایل را
مدیریت
کند.
VCSCLIENTS=('protocol::package' ...)
بستههای
مورد نیاز
برای واکشی
فایلهای
منبع کنترل
نسخهشده
را تنظیم
میکند. در
صورت نیاز،
makepkg بررسی
خواهد کرد
که این
بستهها
نصب باشند
یا در
آرایههای
depends یا makedepends در PKGBUILD
گنجانده
شده باشند.
CARCH="carch"
معماری
رایانه شما
را مشخص
میکند؛
مقادیر
ممکن شامل
مواردی
مانند “i686”،
“x86_64”، “ppc” و
غیره است.
این مقدار
باید در
زمان نصب
بهطور
خودکار
تنظیم شده
باشد.
CHOST="chost"
رشتهای
مانند
“i686-pc-linux-gnu”؛ به
این متغیر
دست نزنید
مگر اینکه
بدانید چه
کار
میکنید. در
صورت
تمایل،
اغلب
کاربران
میتوانند
آن را کامنت
کنند.
CPPFLAGS="cppflags"
پرچمهای
مورد
استفاده
برای
پیشپردازنده
C؛ برای
اطلاعات
بیشتر CFLAGS را
ببینید.
CFLAGS="cflags"
پرچمهای
مورد
استفاده
برای
کامپایلر C.
این یک بخش
کلیدی در
استفاده از
makepkg است.
معمولاً
چندین
گزینه مشخص
میشوند و
متداولترین
رشته چیزی
شبیه به این
است: “-march=i686 -O2 -pipe”.
گزینه مفید
دیگر ممکن
است -mcpu به جای
-march باشد. برای
جزئیات
بیشتر
درباره طیف
وسیع
پرچمهای
موجود
کامپایلر،
gcc(1) را
بخوانید.
CXXFLAGS="cxxflags"
پرچمهای
مورد
استفاده
برای
کامپایلر ++C؛
برای
اطلاعات
بیشتر CFLAGS را
ببینید.
RUSTFLAGS="rustflags"
پرچمهای
مورد
استفاده
برای
کامپایلر Rust،
از نظر
ماهیت شبیه
به CFLAGS. برای
جزئیات
بیشتر
درباره
پرچمهای
موجود،
rustc(1)
را
بخوانید.
LDFLAGS="ldflags"
پرچمهای
مورد
استفاده
برای
پیونددهنده
(linker).
گزینههای
متعددی را
میتوان
مشخص کرد که
کاربرد
رایج آنها
شبیه به
“-Wl,--hash-style=gnu” است.
برای
جزئیات
بیشتر
درباره
پرچمهای
پیونددهنده
موجود، ld(1) را
بخوانید.
LTOFLAGS="ltoflags"
پرچمهای
تکمیلی
کامپایلر و
پیونددهنده
که هنگام
ساخت با
بهینهسازی
زمان پیوند
(LTO) به CFLAGS، CXXFLAGS و LDFLAGS
پیوست
میشوند. در
صورت خالی
بودن، “-flto”
استفاده
میشود.
MAKEFLAGS="makeflags"
این
گزینه اغلب
برای تعیین
تعداد
پردازشهای
همزمان (jobs)
استفاده
میشود؛
برای مثال، -j2.
سایر
پرچمهایی
که make
میپذیرد
را نیز
میتوان
منتقل کرد.
DEBUG_CFLAGS="debug_cflags"
پرچمهای
تکمیلی
کامپایلر
که برای
استفاده در
اشکالزدایی
(debugging) به CFLAGS پیوست
میشوند.
معمولاً
این شامل: “-g”
خواهد بود.
برای
جزئیات
بیشتر
درباره طیف
وسیع
پرچمهای
کامپایلر
موجود، gcc(1) را
بخوانید.
DEBUG_CXXFLAGS="debug_cxxflags"
پرچمهای
اشکالزدایی
مورد
استفاده
برای
کامپایلر ++C؛
برای
اطلاعات
بیشتر DEBUG_CFLAGS را
ببینید.
DEBUG_RUSTFLAGS="debug_rustflags"
پرچمهای
تکمیلی
کامپایلر
که برای
استفاده در
اشکالزدایی
به RUSTFLAGS پیوست
میشوند.
معمولاً
این شامل: “
-C
debuginfo=2” خواهد
بود. برای
جزئیات
بیشتر
درباره
پرچمهای
موجود،
rustc(1)
را
بخوانید.
BUILDENV=(!distcc !color !ccache check !sign)
این
آرایه حاوی
گزینههایی
است که بر
محیط ساخت
تأثیر
میگذارند؛
مقادیر
پیشفرض در
اینجا نشان
داده
شدهاند.
همه
گزینهها
باید همیشه
در آرایه
باقی
بمانند؛
برای فعال
یا غیرفعال
کردن یک
گزینه،
کافی است یک
“!” را در
ابتدای آن
گزینه حذف
یا اضافه
کنید. اگر
گزینهای
چندین بار
مشخص شود،
مقدار
نهایی
اولویت
دارد. هر
گزینه به
این صورت
کار میکند:
distcc
استفاده
از
کامپایلر
توزیعشده
C/C++/ObjC برای پخش
کردن
کامپایل
میان چندین
ماشین. در
صورت فعال
بودن این
گزینه، DISTCC_HOSTS
نیز باید
مشخص شود.
color
رنگی
کردن
پیامهای
خروجی، که
خواندن
خروجی را
آسانتر
میکند.
ccache
استفاده
از ccache برای
ذخیره
نتایج
کامپایل (cache)
به صورت
پیشفرض.
این امر در
صورتی که
مداوم در
حال
کامپایل
مجدد
بستههای
یکسان
باشید
امکان
کامپایل
سریعتر را
فراهم
میسازد.
میتوان آن
را برای
بستههای
مجزا با
قرار دادن !ccache
در آرایه
گزینههای
PKGBUILD غیرفعال
کرد.
check
اجرای
تابع ()check در
صورت وجود
در PKGBUILD. این
مورد را
میتوان
برای
بستههای
مجزا به
ترتیب از
طریق
گزینههای
--check و --nocheck در makepkg
فعال یا
غیرفعال
کرد.
sign
تولید یک
فایل امضای PGP
با استفاده
از GnuPG. این
گزینه
دستور gpg --detach-sign --use-agent
را روی بسته
ساختهشده
اجرا
میکند تا
یک فایل
امضای
جداگانه
تولید کند،
مشروط بر
اینکه عامل GPG
در دسترس
باشد. فایل
امضا همان
نام کامل
فایل بسته
با پسوند “.sig”
خواهد بود.
DISTCC_HOSTS="host1 ..."
در صورت
استفاده از
DistCC، این
متغیر برای
تعیین یک
لیست
جداشده با
فاصله از
میزبانهای
در حال اجرا
در کلاستر DistCC
به کار
میرود.
علاوه بر
این، باید MAKEFLAGS
خود را نیز
تغییر
دهید.
BUILDDIR="/path/to/directory"
اگر این
مقدار
تنظیم
نشود،
بستهها
بهطور
پیشفرض در
زیرپوشههای
همان
دایرکتوری
که makepkg از آن
فراخوانی
شده است
ساخته
میشوند.
این گزینه
امکان
تنظیم مکان
ساخت به
دایرکتوری
دیگری را
فراهم
میکند.
استفاده
نادرست از $startdir
در یک PKGBUILD ممکن
است باعث
شکست ساخت
با این
گزینه شود.
GPGKEY=""
تعیین یک
کلید برای
امضای GPG به
جای کلید
پیشفرض
موجود در
دستهکلید
(keyring). با گزینه
--key در makepkg قابل
بازنویسی
است.
OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman
!purge !debug)
این
آرایه شامل
گزینههایی
است که بر
بستهبندی
پیشفرض
تأثیر
میگذارند.
آنها
معادل
گزینههایی
هستند که
میتوان در
PKGBUILD قرار داد؛
مقادیر
پیشفرض در
اینجا نشان
داده
شدهاند.
همه
گزینهها
باید همیشه
در آرایه
باقی
بمانند؛
برای فعال
یا غیرفعال
کردن یک
گزینه،
کافی است یک
“!” در
ابتدای آن
گزینه حذف
یا اضافه
کنید. اگر
گزینهای
چندین بار
مشخص شود،
مقدار
نهایی
اولویت
دارد. هر
گزینه به
شرح زیر کار
میکند:
strip
حذف
نمادها (symbols) از
فایلهای
باینری و
کتابخانهها.
اگر مرتباً
از یک
اشکالزدا
بر روی
برنامهها
یا
کتابخانهها
استفاده
میکنید،
غیرفعال
کردن این
گزینه ممکن
است مفید
باشد.
docs
نگهداری
دایرکتوریهای
مستندات.
اگر مایل به
حذف
دایرکتوریهای
مستندات
هستید، !docs را
در آرایه
مشخص کنید.
دایرکتوریهای
تحت تأثیر
توسط متغیر
DOC_DIRS تعیین
میشوند.
libtool
باقی
گذاشتن
فایلهای libtool
با پسوند (.la)
در بستهها.
برای حذف
آنها !libtool را
مشخص کنید.
staticlibs
باقی
گذاشتن
فایلهای
کتابخانه
ایستا (.a) در
بستهها.
برای حذف
آنها، در
صورتی که
همتای
اشتراکی
داشته
باشند، !staticlibs را
مشخص کنید.
emptydirs
باقی
گذاشتن
دایرکتوریهای
خالی در
بستهها.
zipman
فشردهسازی
صفحات
راهنما (man و info)
با gzip.
دایرکتوریهای
تحت تأثیر
توسط متغیر
MAN_DIRS مشخص
میشوند.
purge
حذف
فایلهای
مشخصشده
توسط متغیر
PURGE_TARGETS از بسته.
debug
اضافه
کردن
پرچمهای
اشکالزدایی
مشخصشده
توسط کاربر
در DEBUG_CFLAGS و DEBUG_CXXFLAGS به
معادلهای
buildflags آنها. در
صورت
استفاده با
‘strip’، یک
بسته
جداگانه
حاوی
نمادهای
اشکالزدایی
ایجاد
میکند.
lto
فعالسازی
ساخت
بستهها با
استفاده از
بهینهسازی
زمان پیوند
(LTO). پرچمهای
مشخصشده
در LTOFLAGS را به CFLAGS،
CXXFLAGS و LDFLAGS (یا “-flto”
اگر LTOFLAGS خالی
باشد) اضافه
میکند.
INTEGRITY_CHECK=(check1 ...)
بررسیهای
یکپارچگی
فایل برای
استفاده.
چندین
بررسی را
میتوان
مشخص کرد؛
این مورد بر
هر دو مرحله
تولید و
بررسی
تأثیر
میگذارد.
گزینههای
معتبر فعلی
عبارتند از:
ck، md5، sha1، sha224، sha256،
sha384، sha512 و b2.
STRIP_BINARIES="--strip-all"
گزینههای
مورد
استفاده
هنگام حذف
نمادها از
فایلهای
باینری.
برای
جزئیات
strip(1)
را ببینید.
STRIP_SHARED="--strip-unneeded"
گزینههای
مورد
استفاده
هنگام حذف
نمادها از
کتابخانههای
اشتراکی یا
فایلهای
اجرایی PIE.
برای
جزئیات
strip(1)
را ببینید.
STRIP_STATIC="--strip-debug"
گزینههای
مورد
استفاده
هنگام حذف
نمادها از
کتابخانههای
ایستا. برای
جزئیات
strip(1)
را ببینید.
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info}
...)
اگر zipman در
آرایه OPTIONS
مشخص شده
باشد، این
متغیر به makepkg
میگوید
برای
فشردهسازی
صفحات
راهنما (man و info)
کجا را
جستجو کند.
اگر
بستههایی
میسازید
که در /opt قرار
دارند،
ممکن است
لازم باشد
دایرکتوری
را به این
آرایه
اضافه کنید.
نکته: اسلش
ابتدایی را
به نام
دایرکتوری
اضافه
نکنید.
DOC_DIRS=(usr/{,share/}{doc,gtk-doc} ...)
اگر !docs در
آرایه OPTIONS
مشخص شده
باشد، این
متغیر به makepkg
میگوید
برای حذف
مستندات
کجا را
جستجو کند.
اگر
بستههایی
میسازید
که در /opt قرار
دارند،
ممکن است
لازم باشد
دایرکتوری
را به این
آرایه
اضافه کنید.
نکته: اسلش
ابتدایی را
به نام
دایرکتوری
اضافه
نکنید.
PURGE_TARGETS=(usr/{,share}/info/dir .podlist
*.pod...)
اگر purge در
آرایه OPTIONS
مشخص شده
باشد، این
متغیر به makepkg
میگوید
کدام
فایلها را
از بسته حذف
کند. این
مورد برای
فایلهای
نمایهای
که توسط
چندین بسته
اضافه
میشوند
مفید است.
DBGSRCDIR="/usr/src/debug"
اگر strip و debug
در آرایه OPTIONS
مشخص شده
باشند، این
متغیر به makepkg
میگوید
فایلهای
منبع
باینریهای
نصبشده را
در کجا قرار
دهد.
باینریها
تغییر داده
میشوند تا
به این
دایرکتوری
برای مسیر
جستجوی
اشکالزدا
پیوند
بخورند.
PKGDEST="/path/to/directory"
اگر این
مقدار
تنظیم
نشود،
بستهها
بهطور
پیشفرض در
دایرکتوری
فعلی (مکان
PKGBUILD(5)) قرار
میگیرند.
بسیاری از
افراد
ترجیح
میدهند
تمام
بستههای
خود را در یک
مکان نگه
دارند،
بنابراین
این گزینه
این رفتار
را
امکانپذیر
میسازد. یک
مکان رایج
“/home/packages” است.
SRCDEST="/path/to/directory"
اگر این
مقدار
تنظیم
نشود،
فایلهای
منبع
بارگیریشده
فقط در
دایرکتوری
فعلی ذخیره
میشوند.
بسیاری از
افراد
ترجیح
میدهند
تمام
فایلهای
منبع را در
یک مکان
مرکزی برای
پاکسازی
آسان نگه
دارند،
بنابراین
این مسیر را
میتوان در
اینجا
تنظیم کرد.
SRCPKGDEST="/path/to/directory"
اگر این
مقدار
تنظیم
نشود،
فایلهای
بسته منبع
در
دایرکتوری
فعلی ذخیره
میشوند.
بسیاری از
افراد
ترجیح
میدهند
تمام
فایلهای
بسته منبع
را در یک
مکان مرکزی
برای
پاکسازی
آسان نگه
دارند،
بنابراین
این مسیر را
میتوان در
اینجا
تنظیم کرد.
LOGDEST="/path/to/directory"
اگر این
مقدار
تنظیم
نشود،
فایلهای
گزارش (log) در
دایرکتوری
فعلی نوشته
میشوند.
این کار
مکان
گزارشها
را متمرکز
کرده و
پاکسازی و
فشردهسازی
را تسهیل
میکند.
PACKAGER="John Doe <john@example.com>"
این
مقدار
هنگام
پرسوجوی
بسته برای
مشاهده
سازنده آن
استفاده
میشود.
فرمت
ارائهشده
برای
جستجوی
کلید PGP از
طریق WKD
الزامی است.
توصیه
میشود این
مقدار را به
نام و نشانی
ایمیل خود
تغییر
دهید.
COMPRESSGZ="(gzip -c -f -n)",
COMPRESSBZ2="(bzip2 -c -f)", COMPRESSXZ="(xz -c
-z -)", COMPRESSZST="(zstd -c -z -)",
COMPRESSLZO"(lzop -q)", COMPRESSLRZ="(lrzip
-q)", COMPRESSLZ4="(lz4 -q)",
COMPRESSZ="(compress -c -f)", COMPRESSLZ="(lzip
-c -f)"
دستور و
گزینههای
مورد
استفاده
هنگام
فشردهسازی
بستههای
کامپایلشده
یا منبع را
در فرمت
نامبرده
تنظیم
میکند.
PKGEXT=".pkg.tar.gz",
SRCEXT=".src.tar.gz"
فشردهسازی
مورد
استفاده
هنگام ساخت
بستههای
کامپایلشده
یا منبع را
تعیین
میکند.
پسوندهای
معتبر
عبارتند از:
.tar.gz، .tar.bz2، .tar.xz، .tar.zst،
.tar.lzo، .tar.lrz، .tar.lz4، .tar.lz و
.tar.Z، یا صرفاً .tar
برای
غیرفعال
کردن کامل
فشردهسازی.
PACMAN_AUTH=()
پیشوند
دستور را
برای اجرای
pacman با دسترسی root
مشخص
میکند. در
صورت تنظیم
نشدن، makepkg
وجود sudo(8) و su(1) را
به ترتیب
بررسی کرده
و اولین
موردی را که
بیابد
امتحان
میکند.
در صورت
وجود، %c با
شکل
نقلقولشده
(shell-quoted) دستور
برای اجرا
جایگزین
میشود. در
غیر این
صورت،
دستوری که
باید اجرا
شود به
انتهای
دستور
احراز هویت
پیوست
میگردد.