سؤال

لدي بنية دبيان التالية:

  • ديبيان/usr/مشاركة/test
  • ديبيان/usr/مشاركة/اختبار/test
  • ديبيان/usr/share/test/test/a
  • ديبيان/usr/share/test/test/b

بعد إنشاء الحزمة باستخدام dpkg-deb --build وتثبيتها باستخدام dpkg -i، لا يبدو أنه يتم إنشاء اختبار المجلدات تلقائيًا إذا لم تكن موجودة.هل أحتاج إلى إنشائها يدويًا في البرنامج النصي preinst؟

تحديث:كانت المشكلة بسبب وجود خطأ في preinst لذا لم تتح فرصة التفريغ.

لوران

هل كانت مفيدة؟

المحلول

انظر إلى مثال لي هنا.

debian/DEBIAN 
debian/usr/bin
debian/usr/lib

لديك عدة خيارات:

  1. ملء الدلائل مع الملفات قبل توليد الحزمة (الحزمة الثنائية)
  2. القيام بالبناء مصدر الحزمة حيث يصنع سيتم استدعاؤه لبناء الحزمة وتثبيتها.

في الحالة الأولى، لا تحتاج إلى إنشاء الدلائل من خلال ملف preinst النصي:سيتم إنشاء التسلسل الهرمي للمجلدات إذا لزم الأمر بواسطة مدير الحزم عند تثبيت الحزمة.

في الحالة الثانية، سوف تحتاج إلى استخدام mkdir -p لإنشاء التسلسل الهرمي للمجلدات أثناء install مرحلة.


لقد مررت بثلاث طرق مختلفة لتعبئة مستودعات دبيان خلال العام الماضي وصدقوني، التفاصيل التي يجب أخذها في الاعتبار عديدة.كان أحد الأشياء المريحة هو التعرف على Launchpad وعملية نشر PPA الخاصة بها.

نصائح أخرى

أنت بحاجة إلى تلك الموجودة في الحزمة المسماة أيضًا tmp أو نفس الحزمة الأولى المدرجة في debian/control، اعتمادًا على إصدار الوضع المتوافق debhelper الذي تختاره.

على سبيل المثالمكالمة من أحد debhelper ملفات المثال:

$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install

أنت تفتقد هذا المستوى من المراوغة هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top