Skip to main content

Ubuntu iepakojuma rokasgrāmata - Iepakojums ar Debhelper

Anonim

Iepakojums ar Debhelper

Svarīgs

Prasības: Prasības no sadaļas "Iepakojums no ieskrāpējuma" plus debhelper un dh-make

Kā iepakotājs, jūs reti izveidojat pakas no nulles, kā mēs to izdarījām iepriekšējā sadaļā. Kā jūs varat iedomāties, daudzi uzdevumi un informācija noteikumi Piemēram, faili ir kopēji iepakojumiem. Lai padarītu iepakojumu vieglāku un efektīvāku, to var izmantot debhelper lai palīdzētu ar šiem uzdevumiem. Debhelper ir Perl skriptu kopums (prefikss ar dh_), kas automatizē pakešu veidošanas procesu. Ar šiem skriptiem Debian paketes veidošana kļūst pavisam vienkārša.

Šajā piemērā mēs atkal izveidosim GNU Hello pakotni, taču šoreiz mēs salīdzināsim savu darbu ar Ubuntu hello-debhelper pakete. Atkal izveidojiet direktoriju, kurā jūs strādājat:

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

Tad iegūstiet Ubuntu pirmkodu:

apt-get source hello-debhelper cd ..

Tāpat kā iepriekšējais piemērs, pirmā lieta, kas mums jādara, ir izpakot oriģinālu (augšpus straumi).

tar -xzvf hello-2.1.1.tar.gz

Tā vietā, lai augšupielādes rīkjoslu kopētu hello_2.1.1.orig.tar.gz kā mēs to izdarījām iepriekšējā piemērā, mēs ļausim dh_make dariet darbu mums. Vienīgais, kas jums jādara, ir pārdēvēt avota mapi tā, lai tā būtu - kur iepakojuma nosaukums ir mazais. Šajā gadījumā, vienkārši iztukšojot lietojumprogrammu, tiek izveidots pareizi nosauktais avota katalogs, lai mēs varētu to pārvietot:

cd hello-2.1.1

Lai izveidotu sākotnējo "debianization" no avota mēs izmantosim dh_make.

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

Dh_make pēc tam uzdos jums virkni jautājumu:

Pakotnes veids: viena bināra, vairāku bināro, bibliotēka, kodola modulis vai cdbs? s / m / l / k / b s Uzturētāja vārds: Captain Packager E-pasta adrese: [email protected] Datums: Thu, 6 Apr 2006 10:07:19 -0700 Iepakojuma nosaukums: hello Versija: 2.1.1 Licence: tukšs Iepakojuma veids: vienotais apstiprināt: Ievadiet

Uzmanību

Tikai palaist dh_make-e vienreiz Ja jūs to atkal palaidīsit pēc pirmās reizes, tas nedarbosies pareizi. Ja vēlaties to mainīt vai kļūdījies, noņemiet avota direktoriju un no jauna noņemiet augšupielādes lietderību. Tad jūs varat migrēt avota direktorijā un mēģināt vēlreiz.

Braukšana dh_make-e divas lietas:

  • Izveido hello_2.1.1.orig.tar.gz fails mātes katalogā
  • Izveido vajadzīgos pamata failus debian / un daudzi veidņu faili (.ex), kas var būt vajadzīgi.

The Sveiki programma nav ļoti sarežģīta, un, kā mēs to redzējām sadaļā "Iepakojums no ieskrāpēt", iepakojumam nav nepieciešami daudz vairāk nekā pamata faili. Tāpēc ļaujiet mums noņemt .ex faili:

cd debian rm * .ex * .EX

Par Sveiki, jums arī nebūs

* Licence

* Ubuntu iepakojuma rokasgrāmatas indekss

nepieciešamība README.Debian (README fails konkrētiem Debian jautājumiem, nevis programmas README) dirs (ko izmanto dh_installdirs izveidot nepieciešamos katalogus), docs (ko izmanto dh_installdocs instalēt programmas dokumentāciju) vai info (ko izmanto dh_installinfo lai instalētu informācijas failu) failus debian katalogs. Plašāku informāciju par šiem failiem skatiet sadaļā "dh_make example files".

Šajā brīdī jums vajadzētu būt tikai izmaiņu saraksts, kompat, kontrole, autortiesības, un noteikumi faili debian katalogs. No sadaļas "Packaging From Scratch" vienīgais jaunais fails ir kompat, kas ir fails, kas satur debhelper versija (šajā gadījumā 4), kas tiek izmantota.

Jums būs jāpielāgo izmaiņu sarakstsnedaudz šajā gadījumā, lai atspoguļotu, ka šī pakete ir nosaukta hello-debhelper nevis vienkārši Sveiki:

hello-debhelper (2.1.1-1) dapper; steidzamība = zems * Sākotnējais atbrīvojums - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Izmantojot debhelper, vienīgās lietas, kas mums jāmaina kontrole ir nosaukums (aizvietojot Sveiki par hello-debhelper) un pievienojot debhelper (> = 4.0.0) uz Build-Depends avota pakotnes lauks. Ubuntu pakotne hello-debhelper izskatās kā:

Avots: hello-debhelper Sadaļa: devel Prioritāte: extra Uzturētājs: Capitan Packager Standarti-versija: 3.6.1 Build-Depends: debhelper (> = 4) Iepakojums: hello-debhelper Arhitektūra: jebkura atkarīga: $ {shlibs: atkarīgs} Konflikti: hello Nodrošina: hello Aizstāj: hello Apraksts: klasisks sveiciens un labs piemērs GNU hello programma rada pazīstamu, draudzīgu sveicienu. Tas ļauj neprogrammētājiem izmantot klasisku datorzinību rīku, kas pretējā gadījumā viņiem nebūtu pieejams. . Nopietni, tomēr: tas ir piemērs tam, kā izdarīt Debian paketi. Šī ir GNU projekta "hello world" programma (tā pati ir GNU projekta piemērs) Debian versija. . Tas ir tāds pats kā sveiciena pakotne, izņemot to, ka izmanto debhelper, lai izveidotu deb. Lūdzu, skatiet debhelper par to, kas tas ir.

Mēs varam kopēt autortiesības failu un pēcinst un prerm Ubuntu skripti hello-debhelper iepakojumā, jo tie nav mainījušies kopš sadaļas "Iepakojums no skrāpējumiem". Mēs arī kopēsim noteikumi failu, lai mēs varētu to pārbaudīt.

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.

Pēdējais fails, kas mums jāaplūko, ir noteikumi, kur vara debhelper skripti ir redzami. The debhelper versija noteikumi ir nedaudz mazāks (54 līnijas, salīdzinot ar 72 līnijām versijā no sadaļas "noteikumi").

The debhelper versija izskatās šādi:

#! / usr / bin / make -f paketes = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS)))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 tīrs : dh_testdir dh_clean rm -f build-$ (MAKE) -i distclean instalēt: build dh_clean dh_installdirs $ (MAKE) prefikss = $ (CURDIR) / debian / $ (package) / usr mandir = $ (CURDIR) / debian / $ (pakete) / usr / share / man infodir = $ (CURDIR) / debian / $ (package) / usr / share / info install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

touch build binary-indep: instalēt # No šīs paketes nav ģenerēti # no arhitektūras neatkarīgi faili, kas tiek augšupielādēti. Ja būtu kāds, tad šeit tos ierakstīs #. binary-arch: instalējiet dh_testdir -a dh_testroot -a dh_installdocs -a NEWS 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 binārā: binārā-indep binārā- arch .PHONY: binārā binārā arka binārā-indep tīra checkroot

Ņemiet vērā, ka tādi uzdevumi kā pārbaude, ja esat pareizajā direktorijā (dh_testdir), pārliecinoties, ka jūs veidojat paketi ar root privilēģijām (dh_testroot), dokumentācijas instalēšana (dh_installdocs un dh_installchangelogs) un tīrīšana pēc celtniecības (dh_clean) tiek apstrādāti automātiski. Daudzas paketes daudz sarežģītākas nekā Sveiki ir noteikumi faili nav lielāki, jo debhelper skripti izpilda lielāko daļu uzdevumu. Lai iegūtu pilnu sarakstu ar debhelper skriptus, lūdzu, skatiet sadaļu "List of debhelper skripti ". Tie ir arī labi dokumentēti to attiecīgajā cilvēks lapas. Tas ir noderīgs uzdevums, lai izlasītu vīriešu lapu (tie ir labi rakstīti un nav garš) par katru palīgs skriptu, kas izmantots iepriekš noteikumi fails