الاسم¶
makepkg - أداة
بناء
الحزم
موجز¶
makepkg [خيارات]
[متغير_بيئة=قيمة]
[متغير_بيئة+=قيمة]
...
الوصف¶
makepkg هو
سكريبت
لأتمتة
بناء الحزم.
متطلبات
استخدام
السكريبت
هي منصة *nix
قادرة على
البناء
وسكريبت
بناء مخصص
لكل حزمة
ترغب في
بنائها
(يُعرف باسم
PKGBUILD). انظر PKGBUILD(5)
للتفاصيل
حول إنشاء
سكريبتات
البناء
الخاصة بك.
ميزة
البناء
القائم على
السكريبت
هي أن العمل
يُنجز مرة
واحدة فقط.
بمجرد
حصولك على
سكريبت
البناء
لحزمة،
سيقوم makepkg
بالباقي:
تنزيل
ملفات
المصدر
والتحقق من
صحتها، فحص
التبعيات،
ضبط
إعدادات
وقت
البناء،
بناء
الحزمة،
تثبيت
الحزمة في
جذر مؤقت،
إجراء
التخصيصات،
توليد
البيانات
الوصفية،
وتجميع كل
شيء
لاستخدامه
بواسطة pacman.
ملاحظة
يستخدم makepkg
الإعدادات
المحلية
الحالية
افتراضيًا
ولا يقوم
بإلغاء
تعيينها
عند بناء
الحزم. إذا
كنت ترغب في
مشاركة
مخرجات
البناء مع
الآخرين
عند طلب
المساعدة
أو لأغراض
أخرى، قد
ترغب في
تشغيل "LC_ALL=C makepkg"
بحيث لا
تكون
سجلاتك
ومخرجاتك
مترجمة.
الخيارات¶
-A, --ignorearch
تجاهل
حقل بنية
مفقود أو
غير مكتمل
في سكريبت
البناء. هذا
لإعادة
بناء الحزم
من المصدر
عندما يكون
PKGBUILD قديمًا
قليلاً
وغير محدث
بحقل
arch=('بنيتك').
-c، --clean
تنظيف
ملفات
وأدلة
العمل
المتبقية
بعد بناء
ناجح.
--config <ملف>
استخدام
ملف
إعدادات
بديل بدلاً
من الملف
المبدئي
/etc/makepkg.conf.
-d، --nodeps
عدم
إجراء أي
فحوصات
للتبعيات.
سيسمح لك
هذا بتجاوز
وتجاهل أي
تبعيات
مطلوبة.
هناك
احتمال
كبير أن
يؤدي هذا
الخيار إلى
تعطيل
عملية
البناء إذا
لم تكن جميع
التبعيات
مثبتة.
-e, --noextract
عدم
استخراج
ملفات
المصدر أو
تشغيل دالة
prepare() (إن وجدت)؛
استخدام أي
مصدر موجود
بالفعل في
دليل $srcdir/. هذا
مفيد إذا
كنت ترغب في
الدخول إلى
$srcdir/ وتصحيح أو
تعديل
الكود
يدويًا، ثم
إنشاء حزمة
من النتيجة.
ضع في
اعتبارك أن
إنشاء
تصحيح قد
يكون حلاً
أفضل
للسماح
للآخرين
باستخدام PKGBUILD
الخاص بك.
--verifysource
لكل ملف
مصدر في
مصفوفة
المصادر في
PKGBUILD، تنزيل
الملف إذا
لزم الأمر
وإجراء
فحوصات
السلامة. لا
يتم إجراء
أي استخراج
أو بناء. لن
يتم
التعامل مع
التبعيات
المحددة في
PKGBUILD ما لم يتم
استخدام --syncdeps.
مفيد
لإجراء
عمليات
بناء لاحقة
دون اتصال.
-f, --force
لن يقوم makepkg
ببناء حزمة
إذا كانت
حزمة مبنية
موجودة
بالفعل في
دليل PKGDEST
(المُعيّن
في
makepkg.conf(5))،
والذي قد
يكون
مبدئيًا
الدليل
الحالي. هذا
يسمح
باستبدال
الحزمة
المبنية.
-g, --geninteg
لكل ملف
مصدر في
مصفوفة
المصادر في
PKGBUILD، تنزيل
الملف إذا
لزم الأمر
وتوليد
فحوصات
السلامة.
يتم تحديد
فحوصات
السلامة
المُولّدة
بواسطة
الفحوصات
الموجودة
في PKGBUILD، مع
الرجوع إلى
قيمة
مصفوفة INTEGRITY_CHECK
في
makepkg.conf(5) إذا
كانت هذه
غائبة. يمكن
إعادة
توجيه هذا
المخرجات
إلى PKGBUILD الخاص
بك للتحقق
من المصدر
باستخدام "makepkg
-g >> PKGBUILD".
--skipinteg
عدم
إجراء أي
فحوصات
سلامة
(مجموع
اختباري وPGP)
على ملفات
المصدر.
لا تتحقق
من مجاميع
التحقق
لملفات
المصدر.
لا تقم
بالتحقق من
مجموعات
المراجعة
لملفات
المصدر.
لا تتحقق
من توقيعات
PGP لملفات
المصدر.
لا تتحقق
من توقيعات PGP
لملفات
المصدر.
-h، --help
صيغة
المخرجات
وخيارات
سطر
الأوامر.
--holdver
عند
استخدام
مصادر VCS (
PKGBUILD(5))،
لن تحدث أي
مصادر
مسجلة
حاليًا إلى
أحدث
إصدار.
-i, --install
تثبيت أو
ترقية
الحزمة بعد
نجاح عملية
التجميع
باستخدام
pacman(8).
-L, --log
تمكين
التسجيل.
سيؤدي هذا
إلى
استخدام
برنامج tee
لإرسال
مخرجات كل
وظيفة من
وظائف PKGBUILD إلى
كل من وحدة
التحكم
وملف نصي في
دليل
البناء
باسم
pkgbase-pkgver-pkgrel-arch-<function>.log. كما
ذكر أعلاه،
سيتم ترجمة
السجلات،
لذا قد ترغب
في ضبط
الإعدادات
المحلية
وفقًا لذلك
إذا كنت
تشارك
مخرجات
السجل مع
الآخرين.
-m، --nocolor
تعطيل
الألوان في
رسائل
الإخراج.
-o, --nobuild
تنزيل
الملفات
وفك ضغطها،
وتشغيل
الدالة prepare()،
دون القيام
بتركيبها.
يفيد هذا مع
الخيار --noextract
إذا كنت
ترغب في
تعديل
الملفات
الموجودة
في $srcdir/ قبل
التركيب.
-p <buildscript>
اقرأ
البرنامج
النصي
الخاص
بالحزمة (buildscript)
بدلاً من
ملف PKGBUILD
الافتراضي؛
انظر
PKGBUILD(5). يجب
أن يكون
البرنامج
النصي
موجودًا في
الدليل
الذي
يُستدعى
منه makepkg.
-r, --rmdeps
بعد
إتمام
عملية
التجميع
بنجاح، أزل
أي تبعيات
مثبتة
بواسطة makepkg
أثناء
عملية
تحديد
التبعيات
وتثبيتها
تلقائيًا
عند
استخدام
الخيار -s.
-R, --repackage
إعادة
تجميع
محتويات
الحزمة دون
إعادة بناء
الحزمة
نفسها.
وتُعد هذه
الطريقة
مفيدة إذا
نسيت، على
سبيل
المثال،
إدراج أحد
التبعيات
أو ملف
التثبيت في
ملف PKGBUILD الخاص
بك، ولا
يتطلب ذلك
تغيير
عملية
البناء
نفسها.
-s, --syncdeps
تثبيت
التبعيات
المفقودة
باستخدام pacman.
عندما لا
تُعثر على
تبعيات وقت
البناء أو
وقت
التشغيل،
سيحاول pacman
حلها. إذا
نجح، سيتم
تنزيل
الحزم
المفقودة
وتثبيتها.
-S, --source
لا تقم
ببناء
الحزمة
فعليًا، بل
قم ببناء
كرة مصدرية
فقط لا
تتضمن
المصادر
التي يمكن
جلبها عبر
رابط تنزيل.
هذا مفيد
لتمرير كرة
واحدة إلى
برنامج آخر
مثل chroot أو
باني عن
بُعد أو رفع
كرة. نظرًا
للتحقق من
تكامل
البيانات،
يجب أن تكون
جميع ملفات
المصدر
للحزمة
موجودة أو
قابلة
للتنزيل.
-V، --version
اعرض
معلومات
الإصدارة.
-C, --cleanbuild
تنظيف
نتائج
البناء من
تشغيلات
سابقة لـ makepkg
في الدليل
الحالي
بإزالة $srcdir
قبل بناء
الحزمة.
-D <dir>, --dir <dir>
الانتقال
إلى الدليل
<dir> قبل قراءة
PKGBUILD أو فعل أي
شيء آخر.
--allsource
لا تقم
ببناء
الحزمة
فعليًا، بل
قم ببناء
كرة مصدرية
فقط تتضمن
جميع
المصادر،
بما في ذلك
تلك التي
تُنزل
عادةً عبر makepkg.
هذا مفيد
لتمرير كرة
واحدة إلى
برنامج آخر
مثل chroot أو
باني عن
بُعد. كما
سيلبي
متطلبات GPL
عند توزيع
الحزم
الثنائية.
--check
--noarchive
لا تنشئ
الأرشيف في
نهاية
عملية
البناء. هذا
قد يكون
مفيدًا
لاختبار
دالة package() أو
إذا كان
توزيعك
المستهدف
لا يستخدم
pacman.
--nocheck
لا تشغل
دالة check() في PKGBUILD
أو تعالج checkdepends.
--noprepare
لا تشغل
دالة prepare() في PKGBUILD.
--noverify
لا تشغل
دالة verify() في PKGBUILD.
--sign
--nosign
لا تنشئ
توقيعًا
للحزمة
المبنية.
--key <مفتاح>
تحديد
مفتاح
لاستخدامه
عند توقيع
الحزم،
متجاوزًا
إعداد GPGKEY في
makepkg.conf(5). إذا لم
يُحدد في أي
من
الموقعين،
سيُستخدم
المفتاح
المبدئي من
سلسلة
المفاتيح.
--noconfirm
(يُمرر
إلى pacman) منع pacman
من انتظار
إدخال
المستخدم
قبل
المتابعة
في
العمليات.
--needed
(يُمرر
إلى pacman) إخبار
pacman بعدم
إعادة
تثبيت هدف
إذا كان
محدثًا
بالفعل.
(يُستخدم مع
-i / --install).
--asdeps
(يُمرر
إلى pacman) تثبيت
الحزم كغير
مثبتة بشكل
صريح
(يُستخدم مع
-i / --install).
--noprogressbar
(يُمرر
إلى pacman) منع pacman
من عرض شريط
تقدم؛ مفيد
إذا كنت
تُعيد
توجيه
مخرجات makepkg
إلى ملف.
--packagelist
سرد
أسماء
ملفات
الحزم التي
ستُنتج دون
بناء. تتضمن
أسماء
ملفات
الحزم
المدرجة PKGDEST
وPKGEXT.
--printsrcinfo
توليد
وطباعة ملف
SRCINFO إلى stdout.
ميزات إضافية¶
يدعم makepkg
بناء
إصدارات
تطويرية من
الحزم دون
الحاجة إلى
تحديث pkgver
يدويًا في PKGBUILD.
كان هذا
يُنجز
سابقًا
باستخدام
الأداة
المنفصلة
versionpkg. انظر PKGBUILD(5)
للتفاصيل
حول كيفية
إعداد PKGBUILD
تطويري.
قابلية إعادة الإنتاج¶
صُمم makepkg
ليكون
متوافقًا
مع
البناءات
القابلة
للتكرار.
إذا كان
متغير
البيئة SOURCE_DATE_EPOCH
مُعينًا،
سيُصدر إلى
العمليات
الفرعية،
وسيتم
توحيد
أوقات
تعديل
ملفات
المصدر
والحزم
وبيانات
الحزم
الوصفية
بناءً على
الطابع
الزمني
المحدد.
إذا لم يكن
متغير
البيئة SOURCE_DATE_EPOCH
مُعينًا،
سيستخدم makepkg
تاريخ
بدايته
الخاص
للاستخدام
الداخلي،
لكنه لن
يوحد
الطوابع
الزمنية
لملفات
المصدر قبل
البناء.
متغيرات البيئة¶
MAKEPKG_LIBRARY="/path/to/directory"
استخدام
مسار libmakepkg بديل
بدلاً من
المسار
المبدئي
/usr/share/makepkg.
PACMAN
الأمر
الذي
سيُستخدم
للتحقق من
التبعيات
المفقودة
ولتثبيت
وإزالة
الحزم. يجب
أن تدعم
عمليات Pacman’s -Qq
و-Rns و-S و-T و-U
بواسطة هذا
الأمر. إذا
لم يكن
المتغير
مُعينًا أو
فارغًا،
سيعود makepkg إلى
‘pacman’.
MAKEPKG_CONF="/path/to/file"
استخدام
ملف إعداد
بديل بدلاً
من الملف
المبدئي
/etc/makepkg.conf.
MAKEPKG_GIT_CONFIG="/path/to/file"
استخدم
ملف تهيئة
بديل لـ Git
بدلاً من
الملف
المبدئي
/etc/makepkg.d/gitconfig. يمنع makepkg Git
آلياً من
تحميل أي
ملفات
تهيئة
أخرى.
PKGDEST="/مسار/إلى/دليل"
الدليل
الذي
ستُخزّن
فيه الحزم
الناتجة.
يتجاوز
القيمة
المقابلة
المُعرّفة
في
makepkg.conf(5).
SRCDEST="/path/to/directory"
الدليل
الذي
ستُخزّن
فيه
المصادر
المُنزّلة.
يتجاوز
القيمة
المقابلة
المُعرّفة
في
makepkg.conf(5).
SRCPKGDEST="/path/to/directory"
الدليل
الذي
ستُخزّن
فيه ملفات
حزمة
المصدر.
يتجاوز
القيمة
المقابلة
المُعرّفة
في
makepkg.conf(5).
LOGDEST="/مسار/إلى/دليل"
الدليل
الذي
ستُخزّن
فيه ملفات
السجل
المُنشأة.
يتجاوز
القيمة
المقابلة
المُعرّفة
في
makepkg.conf(5).
PACKAGER="John Doe <john@doe.com>"
سلسلة
لتحديد
منشئ
الحزمة
الناتجة.
يتجاوز
القيمة
المقابلة
المُعرّفة
في
makepkg.conf(5).
دليل_البناء="/مسار/إلى/الدليل"
الدليل
الذي
ستُبنى فيه
الحزمة.
يتجاوز
القيمة
المقابلة
المُعرّفة
في
makepkg.conf(5).
CARCH="(i686|x86_64)"
فرض
البناء
لبنية
معينة. مفيد
للترجمة
المتقاطعة.
يتجاوز
القيمة
المقابلة
المُعرّفة
في
makepkg.conf(5).
PKGEXT=".pkg.tar.gz"،
SRCEXT=".src.tar.gz"
يضبط
الضغط
المُستخدم
عند صنع
الحزم
المُترجمة
أو
المصدرية.
يتجاوز
القيمة
المقابلة
المُعرّفة
في
makepkg.conf(5).
GNUPGHOME="/path/to/directory"
الدليل
الذي
تُخزّن فيه
سلسلة
مفاتيح gpg
لتوقيع
الحزمة
المبنية.
GPGKEY="keyid"
حدد
مفتاحاً
لاستخدامه
عند توقيع
الحزم،
متجاوزاً
إعداد GPGKEY في
makepkg.conf(5).
SOURCE_DATE_EPOCH="<date>"
مُستخدم
للبنيات
القابلة
للتكرار.
BUILDTOOL="<name>"
اسم نظام
أدوات
يُستخدم
لإعداد
بيئة
البناء.
يُستخدم
لتعريف
مواصفات
للبنيات
القابلة
للتكرار،
مثل
makepkg.conf(5)
المُستخدم.
BUILDTOOLVER="<إصدار>"
إصدار
الأداة $BUILDTOOL
المستخدمة.
MAKEPKG_LINT_PKGBUILD=0
تعيين
القيمة إلى 0
يعطل فحص PKGBUILD
داخل makepkg. مفيد
على
الأنظمة
ذات عمليات
الصدفة
الفرعية
البطيئة bash،
أو على PKGBUILDs ذات
كميات
هائلة من
تقسيم
الحزم.
الضبط¶
انظر makepkg.conf(5)
لمزيد من
التفاصيل
حول تكوين makepkg
باستخدام
ملف makepkg.conf.
الأخطاء¶
عند
الخروج،
يُرجع makepkg أحد
رموز الخطأ
التالية.
0
حالة
خروج
عادية.
1
سبب فشل
غير معروف.
2
خطأ في
ملف
التهيئة.
3
حدد
المستخدم
خيارًا غير
صالح.
4
خطأ في
دالة مقدمة
من
المستخدم
في PKGBUILD.
5
فشل
إنشاء حزمة
قابلة
للاستخدام.
6
ملف مصدر
أو مساعد
محدد في PKGBUILD
مفقود.
7
دليل PKGDIR
مفقود.
8
فشل
تثبيت
التبعيات.
9
فشل
إزالة
التبعيات.
10
حاول
المستخدم
تشغيل makepkg
كجذر.
11
يفتقر
المستخدم
إلى
الصلاحيات
للبناء أو
التثبيت في
موقع معين.
12
خطأ في
تحليل PKGBUILD.
13
حزمة قد
بُنيت
بالفعل.
14
فشل
تثبيت
الحزمة.
15
البرامج
الضرورية
لتشغيل makepkg
مفقودة.
16
مفتاح GPG
المحدد غير
موجود أو
فشل في
توقيع
الحزمة.
17
المستودع
المحلي ليس
نسخة من
المستودع
المصدر
المحدد في
PKGBUILD.
العلل¶
علل؟ لا بد
أنك تمزح؛
لا توجد علل
في هذا
البرنامج.
ولكن إذا
صدف وكنا
مخطئين،
فيُرجى
الإبلاغ
عنها في
متتبع
المشكلات
في 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
أو ما بعده
للاطلاع
على شروط
حقوق النشر.
لا توجد أي
ضمانات.
إذا وجدت
أي أخطاء في
ترجمة صفحة
الدليل
هذه، يرجى
إرسال بريد
إلكتروني
إلى قائمة
بريد
المترجمين:
kde-l10n-ar@kde.org.