MAKEPKG(8)

الاسم
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
    تشغيل دالة check() في PKGBUILD، متجاوزًا الإعداد في makepkg.conf(5).

--noarchive
    لا تنشئ الأرشيف في نهاية عملية البناء. هذا قد يكون مفيدًا لاختبار دالة package() أو إذا كان توزيعك المستهدف لا يستخدم pacman.

--nocheck
    لا تشغل دالة check() في PKGBUILD أو تعالج checkdepends.

--noprepare
    لا تشغل دالة prepare() في PKGBUILD.

--noverify
    لا تشغل دالة verify() في PKGBUILD.

--sign
    توقيع الحزمة الناتجة باستخدام gpg، متجاوزًا الإعداد في makepkg.conf(5).

--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.

انظر أيضًا

makepkg.conf(5)، PKGBUILD(5)، pacman(8)

راجع موقع pacman الإلكتروني على https://archlinux.org/pacman/ للحصول على معلومات حديثة حول pacman والأدوات المرتبطة به.

العلل

علل؟ لا بد أنك تمزح؛ لا توجد علل في هذا البرنامج. ولكن إذا صدف وكنا مخطئين، فيُرجى الإبلاغ عنها في متتبع المشكلات في 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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.