Ubuntu qadoqlash bo'yicha qo'llanma

Hujjatlar

Debhelper bilan qadoqlash


[Muhim]

Talablarga: "Esdaliklardan qadoqlash" deb nomlangan bo'limga qo'yiladigan talablar, shuningdek, daftar va dh-make

Paket sifatida siz avvalgi bobda qilganimizdek, noldan noyob paketlarni yaratasiz. Tasavvur qilish mumkinki, qoidalar faylidagi ko'plab vazifalar va ma'lumotlar, masalan, paketlar uchun keng tarqalgan. Qadoqlashni osonroq va samaraliroq qilish uchun, bu vazifalarni bajarishda yordam berish uchun abituriyentdan foydalanishingiz mumkin. Debhelper - paketlarni yaratish jarayonini avtomatlashtiradigan Perl skriptlari to'plamidir ( dh_ bilan prefixed ). Ushbu skriptlar yordamida Debian paketini yaratish ancha osonlashadi.

Ushbu misolda biz yana GNU Hello paketini quramiz, lekin bu safar biz ishni Ubuntu salom-debhelper paketiga solishtiramiz. Shunga qaramay, siz ishlaydigan katalog yarating:

mkdir ~ / salom-debhelper CD ~ / salom-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd ubuntu

Keyinchalik, Ubuntu manba paketini oling:

apt-get source manba-debhelper CD ..

Oldingi misol kabi, biz birinchi narsa qilishimiz kerak - dastlabki (yuqorida turgan) tarballni ochishdir.

tar -xzvf salom-2.1.1.tar.gz

Oldingi misoldagi kabi yuqorida turgan tarballni hello_2.1.1.orig.tar.gz ga nusxalash o'rniga, biz uchun ishni bajarish uchun dh_make qilishga ruxsat beramiz . Sizga kerak bo'lgan yagona narsa - manba papkasini nomini o'zgartirish, shuning uchun - formatida, bu erda packagename kichik harf. Bu holatda, faqat tarozi untarring to'g'ri nomlangan manba katalogini ishlab chiqaradi, shuning uchun biz unga kirishimiz mumkin:

CD-Qizil-2.1.1

Resursning dastlabki "debianizatsiya" ni yaratish uchun biz dh_make foydalanamiz.

dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz

dh_make sizlarga bir qator savollar beradi:

Paketning turi: bir tomonlama, bir nechta ikkitomonlama, kutubxona, yadro modul yoki CDB? [s / m / l / k / b] s
Ta'minotchi nomi: Kema Packager Elektron pochta manzili: packager@coolness.com Sana: Tue, 6-Apr-2006 10:07:19 -0700 Paket unvoni: hello Versiya: 2.1.1 Litsenziya: blanklar Paket turi: tasdiqlash: Enter ni bosing


[E'tibor]

Faqat bir marta dh_make-ni ishga tushirish. Agar siz birinchi marta bajarganingizdan so'ng uni qayta ishga tushirsangiz, u to'g'ri ishlamaydi. Agar siz uni o'zgartirmoqchi bo'lsangiz yoki xato qilmoqchi bo'lsangiz, manba katalogini olib tashlang va yuqoriga ko'tariladigan tarballni qayta oching. Keyin manba katalogiga ko'chib, yana urinib ko'ring.

Dh_make -e ishida ikkita narsa bor:

Salom dasturi juda murakkab emas va "Packaging From Scratch" bo'limida ko'rib chiqqanimizdek, paketga asosiy fayllardan ko'ra ko'proq narsa talab qilinmaydi. Shuning uchun, .ex fayllarini o'chirib tashlaylik :

CD debian rm * .ex * .EX

Salom uchun , siz ham bo'lmaydi

* Litsenziya

* Ubuntu Packaging Guide Index

README.Debian (dasturning README emas, ma'lum Debian masalalari uchun README faylini), dirs (kerakli daftarlarni yaratish uchun dh_installdirs ishlatiladi), docs (dasturiy hujjatlarni o'rnatish uchun dh_installdocs tomonidan ishlatiladi) yoki info (ma'lumotni o'rnatish uchun dh_installinfo tomonidan ishlatiladi) fayl) debian papkasida. Ushbu fayllar haqida ko'proq ma'lumot olish uchun "dh_make misol fayllari" bo'limiga qarang.

Shu nuqtada debian katalogida faqat changelog , moslik , nazorat , mualliflik huquqi va qoidalar fayllari bo'lishi kerak. " Nishabdan qadoqlash" deb nomlangan bo'limdan yangi bo'lgan yagona fayl - bu debhelper versiyasini (bu holda 4) ishlatadigan fayl.

Siz bu paketni salom-atvorga emas, balki salom deb nomlashni aks ettirish uchun bu holatda changelogni biroz o'zgartirishi kerak bo'ladi:

salom-debhelper (2.1.1-1) dapper; urgency = low * Birinchi versiya - Kema Packager Yak, 6-Apr-2006 10:07:19 -0700

Debhelperni ishlatib , nazorat qilishni o'zgartirishi kerak bo'lgan yagona narsa ( salom-alishtari uchun salom almashtirish ) va manba paket uchun Build-Depends maydoniga debhelper (> = 4.0.0) qo'shing. Ubuntu to'plami salom-alifbosi uchun o'xshash:

Ubuntu salom-debhelper paketidagi mualliflik huquqi faylini va postinst va prerm skriptlarini nusxa ko'chirishimiz mumkin, chunki ular " Nishabdan qadoqlash" bo'limidan beri o'zgarmagan. Bundan tashqari biz tekshirish uchun biz qoidalar faylini ko'chirib olamiz.

cp ../../ubuntu/hello-debhelper-2.1.1/debian/copyright. cp ../../ubuntu/hello-debhelper-2.1.1/debian/postinst. cp ../../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp ../../ubuntu/hello-debhelper-2.1.1/debian/rules.

Biz ko'rib chiqmoqchi bo'lgan so'nggi fayl - bu qoidalar , bu erda hamshafti skriptlarning kuchi paydo bo'lishi mumkin. Qoidalarning noqonuniy versiyasi biroz kichikroq ("qoidalar" deb nomlangan qismda 72 qatordan farqli ravishda 54 satr).

Debhelper versiyasi quyidagicha ko'rinadi:

#! / usr / bin / make -f package = salom-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 toza : dh_testdir dh_clean rm -f build - $ (MAKE) -i distilean o'rnatish: qurish dh_clean dh_installdirs $ (MAKE) prefiks = $ (CURDIR) / debian / $ (pack) / usr \ mandir = $ (CURDIR) / debian / $ / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CURDIR) / debian / $ (paket) (CC) "CFLAGS =" $ (CFLAGS) "

sensorli binoni-indepni o'rnatish: install # Bu paket tomonidan yuklanadigan # arxitektura-mustaqil fayllar yo'q. Agar ular bo'lsa edi, ular bu erda tuzilgan bo'lar edi. ikkilik arch: dh_testdir -a dh_testroot -a dh_installdocs -a xabar dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a ikkilik: ikkitomonlama-indep ikkilik- kamar .PHONI: ikkitomonlama ikkilik arch ikkitomonlama indep toza tomchi

Hujjatlarni ( dh_installdocs va dh_installchangelogs ) o'rnatish va tuzilganidan keyin ( dh_clean ) avtomatik ravishda ishlov berilsa, siz to'g'ri doskada ( dh_testdir ) tekshiruv kabi vazifalarni ko'rib chiqing. . Ko'plab paketlar salomga qaraganda ancha murakkabroq, qoidalar fayllari katta bo'lmaganligi sababli, debhelper skriptlari vazifalarning ko'pchiligini boshqaradi. Debelper skriptlarning to'liq ro'yxati uchun " Debhelper skriptlari ro'yxati" bo'limiga qarang. Ular shuningdek, o'zlarining inson sahifalarida yaxshi hujjatlangan. Yuqoridagi qoidalar faylida ishlatilgan har bir yordamchi skript uchun inson sahifasini o'qish uchun foydali mashq (ular yaxshi yozilgan va uzoq emas).