Scroll to navigation

dpkg-buildpackage(1) dpkg-verktygen dpkg-buildpackage(1)

NAMN

dpkg-buildpackage - bygg binär- eller källkodspaket från källkod

SYNOPS

dpkg-buildpackage [flagga...]

BESKRIVNING

dpkg-buildprogram är ett program som automatiserar processen med att bygga ett Debianpaket. Det består av följande steg:
1.
Byggmiljön förbereds genom att diverse miljövariabler sätts (se MILJÖ) och anropar dpkg-source --before-build (såvida inte _T eller --target används).
2.
Byggberoenden och -konflikter kontrolleras att de uppfylls (såvida inte -d anges).
3.
Om ett specifikt mål har valts med flaggan -T eller --target anropas det målet, varpå programmet avslutas. I annat fall anropas fakeroot debian/rules clean för att städa byggträdet (såvida inte -nc anges).
4.
dpkg-source -b anropas för att skapa källkodspaketet (såvida inte ett bygge av enbart binärer har valts med -b, -B eller -A).
5.
debian/rules byggmål anropas, följt av fakeroot debian/rules binärmål (såvida inte ett bygge av enbart källkod har valts med -S). Observera att byggmål och binärmål är ett av build och binary (standardval, eller om -b anges), build-arch och binary-arch (om -B anges) eller build-indep och binary-indep (om -A anges).
6.
gpg anropas för att signera .dsc-filen (om sådan finns, såvida inte -us anges).
7.
dpkg-genchanges anropas för att skapa en .changes-fil. Många av flaggorna till dpkg-buildpackage vidaresänds till dpkg-genchanges.
8.
gpg anropas för att signera .changes-filen (såvida inte -uc anges).
9.
Om -tc anges anropas fakeroot debian/rules clean ytterligare en gång. Till slut anropas dpkg-source --after-build.

FLAGGOR

-b
Anger att enbart binära paket skall byggas, inga källkodsfiler byggs och/eller distribueras. Sänds vidare till dpkg-genchanges.
-B
Anger att enbart binära paket skall byggas, begränsat till arkitekturberoende paket. Sänds vidare till dpkg-genchanges.
-A
Anger att enbart binära paket skall byggas, begränsat till arkitekturoberoende paket. Sänds vidare till dpkg-genchanges.
-S
Anger att enbart källkodspaket skall byggas, inga binärpaket behöver byggas. Sänds vidare till dpkg-genchanges.
-F
Anger att ett normalt komplett bygge, binär- och källkodspaket, skall byggas. Detta är detsamma som standardläget om inga byggflaggor anges.
--target=mål
 
--target mål
 
-Tmål
Anropar debian/rules mål efter att ha konfigurerat byggmiljön, och avbryter byggprocessen efteråt. Om --as-root också anges körs kommandot som root (se -r). Observera att officiella mål som måste köras som root inte behöver flaggan.
--as-root
Endast meningsfull tillsammans med --target. Kräver att målet körs med root-behörighet.
-si
 
-sa
 
-sd
 
-vversion
 
-Cändringsbeskrivning
 
-mpaketansvarige-adress
 
-epaketansvarige-adress
Sänds vidare utan ändringar till dpkg-genchanges. Se dess manualsida.
-aarkitektur
Ange Debianarkitekturen vi bygger för. Arkitekturen för maskinen vi bygger på bestäms automatiskt, och är även standard för värdmaskinen.
-tgnu-systemtyp
Ange GNU-systemtyp vi bygger för. Den kan användas i stället för -a eller som ett komplement för att överstyra standard-GNU-systemtypen för Debian-målarkitekturen.
-jjobb
Antalet jobb som tillåts att köras samtidigt, motsvarar make(1)-flaggan med samma namn. Lägger till sig själv i miljövariabeln MAKEFLAGS, vilket får alla påföljande make-anrop att ärva flaggan. Lägger även till flaggan parallel=jobb till miljövariabeln DEB_BUILD_OPTIONS, vilket gör det möjligt för debian/rules-filer att använda informationen för egna ändamål. Värdet parallel=jobb i miljövariabeln DEB_BUILD_OPTIONS kommer att överstyra värdet för -j om den flaggan ges.
-D
Kontrollera byggberoenden och -konflikter; avbryt om de inte uppfylls. Detta är standardbeteendet.
-d
Kontrollera inte byggberoenden eller -konflikter.
-nc
Städa inte upp byggträdet (implicerar -b om inget annat har valts bland -B, -A eller -S).
-tc
Städa källkodsträdet (använder få-root-kommando debian/rules clean) efter att paketet har byggts.
-rfå-root-kommando
När dpkg-buildpackages behöver exekvera delar av byggprocessen som root sätter den kommandot som skall exekveras efter få-root-kommando om ett sådant har angivits. Om inte kommer fakeroot att användas som standard, om kommandot existerar. få-root-kommando måste börja med namnet på det faktiska kommandot som skall anropas samt de parametrar det skall anropas med. få-root-kommando kan innehålla parametrar (de måste vara avdelade med blanksteg) men inga skalmetatecken. få-root-kommando kan typiskt vara fakeroot, sudo, super eller really. su är inte lämpligt eftersom det kräver flaggan -c för att köra ett kommando och även då kan det bara starta användarens skal med -c istället för att sända flaggor individuellt till kommandot som skall startas.
-Rregelfil
För att bygga ett Debianpaket körs normalt kommandot debian/rules med flera olika standardparametrar. Den här flaggan gör det möjligt att använda ett annat programanrop för att bygga paketet (det kan innehålla blankstegsavdelade parametrar). Den kan även användas för att exekvera standardregelfilen med ett annat make-program (till exempel genom att använda /usr/local/bin/make -f debian/rules som regelfil).
-psigneringskommando
När dpkg-buildpackage måste exekvera GPG för att signera ett källkodsstyrfil ( .dsc) eller en .changes-fil kör det signeringskommando (det letar i PATH om så behövs) istället för gpg. signeringskommando får de argument gpg skulle ha fått. signeringskommando får inte innehålla blanksteg eller andra skalmetatecken.
-knyckel-id
Ange nyckel-id att använda vid signering av paket.
-us
Signera inte källkodspaketet.
-uc
Signera inte .changes-filen.
-i[reguljärt-uttryck]
 
-I[mönster]
 
-s[nsAkurKUR]
 
-z, -Z
 
Sänds vidare utan ändringar till dpkg-source. Se dess manualsida.
--source-option=val
Sänd flaggan val till dpkg-source.
--changes-option=val
Sänder flaggan val till dpkg-genchanges.
--admindir=kat
 
--admindir kat
Ändra platsen för dpkg-databasen. Förval är /var/lib/dpkg.
-?, --help
Visar hjälpskärm och avslutar.
--version
Visar version och avslutar.

MILJÖVARIABLER

Även om dpkg-buildpackage exporterar några variabler bör inte debian/rules vara beroende av deras närvaro och bör istället använda respektive gränssnitt för att hämta de värden som behövs.

Variabler som sätts av dpkg-architecture

dpkg-architecture anropas med flaggorna -a och -t vidaresända. Variabler som skrivs ut via dess -s-flagga integreras i byggmiljön.

Kompileringsflaggor exporteras inte längre.

Mellan version 1.14.17 och 1.16.1 exporterade dpkg-buildpackage kompilatorflaggor ( CFLAGS, CXXFLAGS, CPPFLAGS och LDFLAGS) med värden enligt dpkg-buildflags. Detta gäller inte längre.

BAKÅTKOMPATIBILITET

dpkg-buildpackage använder målen build-archi och build-indep från version 1.16.2. Dessa mål krävs därmed, men för att undvika att existerande paket går sönder, och för att förenkla övergången, kommer den falla tillbaka till att använda målet build om make -f debian/rules -gn byggmål returnerar statuskoden 2.

PROGRAMFEL

Det borde vara möjligt att ange blanksteg och skalmetatecken i, och inledande argument för, få-root-kommando och signeringskommando.

SE ÄVEN

dpkg-source(1), dpkg-architecture(1), dpkg-buildflags(1), dpkg-genchanges(1), fakeroot(1), gpg(1).

ÖVERSÄTTNING

Peter Krefting och Daniel Nylander.
2012-05-04 Debianprojektet