حزمة دبيان تنشئ الدلائل المطلوبة في preinst
سؤال
لدي بنية دبيان التالية:
- ديبيان/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
لديك عدة خيارات:
- ملء الدلائل مع الملفات قبل توليد الحزمة (الحزمة الثنائية)
- القيام بالبناء مصدر الحزمة حيث يصنع سيتم استدعاؤه لبناء الحزمة وتثبيتها.
في الحالة الأولى، لا تحتاج إلى إنشاء الدلائل من خلال ملف preinst
النصي:سيتم إنشاء التسلسل الهرمي للمجلدات إذا لزم الأمر بواسطة مدير الحزم عند تثبيت الحزمة.
في الحالة الثانية، سوف تحتاج إلى استخدام mkdir -p
لإنشاء التسلسل الهرمي للمجلدات أثناء install
مرحلة.
لقد مررت بثلاث طرق مختلفة لتعبئة مستودعات دبيان خلال العام الماضي وصدقوني، التفاصيل التي يجب أخذها في الاعتبار عديدة.كان أحد الأشياء المريحة هو التعرف على Launchpad وعملية نشر PPA الخاصة بها.
نصائح أخرى
أنت بحاجة إلى تلك الموجودة في الحزمة المسماة أيضًا tmp
أو نفس الحزمة الأولى المدرجة في debian/control، اعتمادًا على إصدار الوضع المتوافق debhelper الذي تختاره.
على سبيل المثالمكالمة من أحد debhelper
ملفات المثال:
$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install
أنت تفتقد هذا المستوى من المراوغة هنا.