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Ö), kör haken init 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 körs haken preclean och anropas
fakeroot debian/rules clean för att städa
byggträdet (såvida inte -nc anges).
- 4.
- Kör haken source och anropar dpkg-source -b
för att skapa källkodspaketet (såvida inte ett bygge
av enbart binärer har valts med -b, -B eller
-A).
- 5.
- Kör haken build och anropar debian/rules
byggmål, därefter körs haken binary
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 eller -G anges), eller
build-indep och binary-indep (om -A eller -g
anges).
- 6.
- Kör haken changes och anropar dpkg-genchanges
för att skapa en .changes-fil. Många av flaggorna
till dpkg-buildpackage vidaresänds till
dpkg-genchanges.
- 7.
- Kör haken postclean och, om -tc anges, anropar
fakeroot debian/rules clean ytterligare en gång.
- 8.
- Anropar dpkg-source --after-build.
- 9.
- Kör haken check och anropar en paketkontrollerare för
.changes-filen (om ett kommando har angivits med
DEB_CHECK_COMMAND eller med --check-command).
- 10.
- Kör haken sign och anropar gpg2 eller gpg
för att signera .dsc-filen (om sådan finns,
såvida inte -us anges eller på UNRELEASED-byggen) och
.changes-filen (såvida inte -uc anges eller på
UNRELEASED-byggen).
- 11.
- Kör haken done.
FLAGGOR¶
- -g
- Anger att endast källkod och arkitekturoberoende paket skall
byggas. Sänds vidare till dpkg-genchanges.
- -G
- Anger att endast källkod och arkitekturspecifika paket skall
byggas. Sänds vidare till dpkg-genchanges.
- -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.
- -a, --host-arch arkitektur
- Ange Debianarkitekturen vi bygger för. Arkitekturen för
maskinen vi bygger på bestäms automatiskt, och är
även standard för värdmaskinen.
- -t, --host-type gnu-system-typ
- Ange GNU-systemtyp vi bygger för. Den kan användas i
stället för --host-arch eller som ett komplement för
att överstyra standard-GNU-systemtypen för
Debian-målarkitekturen.
- --target-arch arkitektur
- Ange Debianarkitekturen binärerna som byggs bygger för.
Standardvärde är värdmaskinen.
- --target-type gnu-system-type
- Ange GNU-systemtyp vi binärerna vi som byggs bygger för. Den
kan användas i stället för --target-arch eller som
ett komplement för att överstyra standard-GNU-systemtypen
för Debian-målarkitekturen.
- -Pprofil[,...]
- Ange profil(er) vi bygger, som en kommaavdelad lista. Standardbeteendet
är att inte bygga för någon specifik profil.
Lägger även till dem (som en blankstegsavdelad lista) till
miljövariabeln DEB_BUILD_PROFILES vilket, till exempel,
gör det möjligt för debian/rules-filer att
använda informationen för villkorliga byggen.
- -j[jobb|auto]
- Antalet jobb som tillåts att köras samtidigt, antal jobb
motsvarande antalet tillgängliga processorer om auto anges,
eller ett obegränsat antal om jobb inte anges, 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. Observera att
auto-värdet kommer ersättas av det faktiska antalet
för närvarande aktiva processorer, och därför
inte kommer sändas med till barnprocesser. Om antalet
tillgängliga processorer inte kan tas fram kommer koden att falla
tillbaka till ett obegränsat antal.
- -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 -F, -g, -G, -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).
- --check-command=kontrollkommando
- Kommando som kontrollerar själva .changes-filen och byggda
artifakter som refereras i filen. Kommandot skall ta
sökvägen till .changes som argument. Kommandot
är normalt lintian.
- --check-option=val
- Sänder flaggan val till det kontrollkommando som
anges med DEB_CHECK_COMMAND eller --check-command. Kan
användas flera gånger.
- --hook-hakenamn=hakekommando
- Sätter den angivna skalkoden i hakekommando som haken
hakenamn, vilket körs vid de tidpunkter som anges i
byggstegen. Haken kommer alltid att exekveras även om de
efterföljande funktionerna inte utförs (förutom haken
binary).
Observera: Hakar kan påverka byggprocessen och orsaka att byggen
misslyckas om deras kommandon misslyckas, så se upp för
oförutsedda konsekvenser.
För närvarande stöds följande hakenamn:
init preclean source build binary changes postclean check sign done
hakekommando stöder följande
substitueringsformatsträng, som appliceras på den
föra exekvering:
- %%
- Ett ensamt %-tecken.
- %a
- Ett boolskt värde (0 eller 1) som anger om följande funktion
utförs.
- %p
- Namnet på källkodspaketet.
- %v
- Version för källkodspaketet.
- %s
- Version för källkodspaketet (utan epoken).
- %u
- Uppströmsversionen.
- -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
gpg2 eller gpg. signeringskommando får de
argument gpg2 eller 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.
- --force-sign
- Tvinga signering av de slutliga filerna (sedan dpkg 1.17.0), oberoende av
-us eller -uc eller annan intern heuristik.
- -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. Kan
användas flera gånger.
- --changes-option=val
- Sänder flaggan val till dpkg-genchanges. Kan
användas flera gånger.
- --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¶
- DEB_CHECK_COMMAND
- Om satt, används som kommandot för att kontrollera
.changes-filen. Överstyrs av flaggan
--check-command.
- DEB_SIGN_KEYID
- Används för att signera filerna .changes och
.dsc om satt. Överstyrs av flaggan -k.
- DEB_BUILD_OPTIONS
- Om satt, och innehåller nocheck, kommer variabeln
DEB_CHECK_COMMAND att ignoreras.
- DEB_BUILD_PROFILES
- Om satt, används som aktiv(a) byggprofil(er) för paketet som
byggs. Det är en blankstegsavdelad lista med profilnamn.
Överstyrs av flaggan -P.
Bero på exporterade miljöflaggor¶
Ä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.
ANTECKNINGAR¶
Kompileringsflaggor exporteras inte längre.¶
Mellan dpkg 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.
Förvalda byggmål¶
dpkg-buildpackage använder målen
build-archi och
build-indep från dpkg 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 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),
lintian(1),
gpg2(1),
gpg(1).
ÖVERSÄTTNING¶
Peter Krefting och Daniel Nylander.