Ubuntu Qablaşdırma Kılavuzu

Sənədlər

Debhelper ilə qablaşdırma


[Önemli]

Tələblər: "Qabaqdan Qablaşdırma" adlı bölmədən tələblər plus debhelper və dh-make

Bir qablaşdırıcı olaraq, əvvəlki hissədə etdiyimiz kimi, nadir hallarda sıfırdan paketləri nadir hala quracaqsınız. Təsəvvür etdiyiniz kimi, qaydalar faylı içərisində olan bir çox tapşırıq və məlumat, paketlərə aiddir. Ambalajı asanlaşdırmaq və daha səmərəli etmək üçün, bu vəzifələrə kömək etmək üçün debhelper istifadə edə bilərsiniz. Debhelper, paket qurma prosesini avtomatlaşdırma edən bir Perl skriptlər dəsti ( dh_ ilə prefixed). Bu skriptlərlə Debian paketinin yaradılması olduqca sadədir.

Bu nümunədə biz yenidən GNU Hello paketini quracağıq, lakin bu dəfə biz işimizi Ubuntu salam debhelper paketi ilə müqayisə edəcəyik. Yenə də çalışacaq bir qovluq yaradın:

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

Sonra Ubuntu mənbə paketini əldə edin:

apt-get mənbə hello-debhelper cd ..

Əvvəlki nümunə kimi, ilk növbədə, orijinal (upstream) tarball paketini açmaq lazımdır.

tar -xzvf hello-2.1.1.tar.gz

Əvvəlki nümunədə etdiyimiz kimi, upstream tarballın hello_2.1.1.orig.tar.gz- ə surətini çıxarmaq əvəzinə dh_make- də bizim üçün işi edəcəyik. Yapmanız gereken tek şey, kaynak paketini - şeklinde olduğu üçün yeniden adlandırmaktır. Paketin adı kiçikdir. Bu vəziyyətdə, yalnız tarballu untarring doğru adı verilən bir mənbə kataloqu istehsal edir, ona daxil ola bilərik:

cd hello-2.1.1

Mənbənin ilkin "debianization" yaratmaq üçün dh_make istifadə edəcəyik .

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

dh_make sizə bir sıra suallar verəcəkdir:

Paket növü: tək ikili, çoxlu ikili, kitabxana, çekirdek modulu və ya cdbs? [s / m / l / k / b] s
Təminatçı adı: Captain Packager E-poçt: Ünvan: packager@coolness.com Tarix: Tue, 6 Apr 2006 10:07:19 -0700 Paket Adı: hello Versiyası: 2.1.1 Lisenziya: boş Paket növü: Single Hit təsdiq edin : daxil edin


[Diqqət]

Yalnız bir dəfə dh_make-i çalıştırın. Bunu ilk dəfə etdiyinizdən sonra yenidən çalıştırarsanız, düzgün işləməyəcəkdir. Bunu dəyişdirmək və ya səhv etmək istəyirsinizsə, mənbə kitabçasını çıxarın və upstream tarball yenidən bərpa edin. Sonra mənbə qovluğuna köçürə və yenidən cəhd edə bilərsiniz.

Dh_make -e qaçan iki şey var:

Salam proqramı çox mürəkkəb deyil və "Qabaqdan Qablaşdırma" adlı bölümdə gördüyümüz kimi, qablaşdırma əsas fayllardan daha çox tələb etmir. Buna görə .ex fayllarını çıxartaq :

cd debian rm * .ex * .EX

Salam üçün siz də olmayacaqsınız

* Lisenziya

* Ubuntu Qablaşdırma Kılavuzu İndeksi

README.Debian (xüsusi Debian məsələləri üçün README faylları, proqramın README deyil), dirs ( dh_installdirs tərəfindən lazım olan qovluqlar yaratmaq üçün istifadə olunur), sənədlər (proqram sənədlərini yükləmək üçün dh_installdocs tərəfindən istifadə olunur) və ya info ( info yükləmək üçün dh_installinfo tərəfindən istifadə olunur) fayl) debian kataloquna daxil edilir. Bu fayllar haqqında daha ətraflı məlumat üçün, "dh_make nümunə faylları" adlı bölməyə baxın.

Bu nöqtədə, debian kataloqunda yalnız changelog , uyğunluq , nəzarət , müəllif hüquqlarıqaydalar faylları olmalıdır. " Qabaqdan Qablaşdırma" bölməsindən yeni olan yeganə fayl, istifadə olunan debhelper versiyasını (bu halda 4) olan bir fayldır.

Bu paketin sadəcə salam, əvəzinə hello-debhelper adlandırıldığını əks etdirmək üçün bu halda bir az dəyişdirmək lazımdır.

hello-debhelper (2.1.1-1) dapper; urgency = low * İlk versiya - Kapitan Packager Çr, 6 Apr 2006 10:07:19 -0700

Debhelper istifadə edərək, nəzarəti dəyişdirmək üçün lazım olan tək şeylər ( hello-debhelper əvəzinə əvəz olunur ) və mənbə paketi üçün Build-Depends sahəsinə Debhelper (> = 4.0.0) əlavə etməkdir . Salam-debhelper üçün Ubuntu paketi aşağıdakı kimi görünür:

Müəlliflik hüququ faylını və postenstprerm skriptlərini Ubuntu hello-debhelper paketindən kopyalayırıq , çünki " Qabaqdan Qablaşdırma" bölməsindən bəri dəyişməmişik. Biz də qaydalar faylını yoxlaya biləcəyimiz üçün kopyalayacağıq.

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.

Baxmalıyıq ki , sonuncu fayl, qaydalara əməl dəftərlərinin gücünün göründüyü qaydalardır . Qaydaların debhelper versiyası bir az daha azdır ("qaydalar" adlı bölmədən versiyada 72 xəttə qarşı 54 xətt).

Debhelper versiyası aşağıdakı kimi görünür:

#! / usr / bin / make -f pack = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 : dh_testdir dh_clean rm -f build - $ (MAKE) -i distallyan quraşdırma: build dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (pack) / usr \ mandir = $ (CURDIR) / debian / $ / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CURDIR) (CC) "CFLAGS =" $ (CFLAGS) "

toxunma ikili-indep qurmaq: install # Bu paketi tərəfindən yaradılan # arxitektura müstəqil fayllar yoxdur. Əgər var olsaydılar, burada # ediləcəkdi. ikili-arch: dh_testdir -a dh_testroot -a dh_installdocs -a Xəbərlər 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-ikili: ikili-indep ikili- arx .PHONY: ikili ikili arx təkərli təmiz indikator

Doğrudan kataloqda ( dh_testdir ) test edildikdə, root imtiyazları ilə ( dh_testroot ) paket qurduğunuzdan , sənədlərin quraşdırılmasından ( dh_installdocsdh_installchangelogs ) və tikildikdən sonra ( dh_clean ) avtomatik olaraq işləndikdən sonra təmizlənməyə diqqət yetirin . Debelper skriptləri vəzifələrin çoxunu idarə etdiyindən, çox sayda salamat daha çox mürəkkəbdir. Debhelper skriptlərinin tam siyahısı üçün, " Debhelper skriptlərin siyahısı" adlı bölməyə baxın. Həm də onların müvafiq səhifələrində yaxşı sənədləşdirilir. Yuxarıdakı qaydalar faylında istifadə olunan hər bir köməkçi script üçün insan səhifəsini oxumaq (onlar yaxşı yazılı və uzun deyildir) üçün faydalı bir işdir.