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Ö), kör kroken 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 eller --no-check-builddeps anges).

3.  Om ett eller flera specifika mål har valts med flaggan -T eller --target anropas de målen, varpå programmet avslutas. I annat fall körs kroken preclean och anropas fakeroot debian/rules clean för att städa byggträdet (såvida inte -nc eller --no-pre-clean anges).

4.  Kör kroken source och anropar dpkg-source -b för att skapa källkodspaketet (om ett source-bygge (källkod) har ombetts via --build eller liknande flaggor).

5.  Kör kroken build och anropar debian/rules byggmål, därefter körs kroken binary följt av fakeroot debian/rules binärmål (såvida inte ett bygge av enbart källkod har valts med --build=source eller liknande flaggor). Observera att byggmål och binärmål är ett av build och binary (förval, eller om ett any- eller all-bygge har valts med --build eller motsvarande flaggor), eller build-arch och binary-arch (om ett any- men inte ett all-bygge har valts med --build eller liknande flaggor), eller build-indep och binary-indep (om ett all- men inte ett any-bygge har valts med --build eller liknande flaggor).

6.  Kör kroken buildinfo och anropar dpkg-genbuildinfo för att skapa en .buildinfo-fil. Många av flaggorna till dpkg-buildpackage vidaresänds till dpkg-genchanges.

7.  Kör kroken changes och anropar dpkg-genchanges för att skapa en .changes-fil. Namnet på .changes-filen kommer att bero på byggtypen och kommer vara så specifik som möjligt, men inte mer; för ett bygge som innehåller any (någon) kommer namnet vara källkodsnamn_binärversion_ark.changes, om bygget annars innehåller all (alla) kommer namnet vara källkodsnamn_binärversion_all.changes, om bygget annars innehåller source (källkod) kommer namnet vara källkodsnamn_källkodsversion_source.changes. Många av flaggorna till dpkg-buildpackage vidaresänds till dpkg-genchanges.

8.  Kör kroken postclean och, om -tc eller --post-clean anges, anropar fakeroot debian/rules clean ytterligare en gång.

9.  Anropar dpkg-source --after-build.

10. Kör kroken check och anropar en paketkontrollerare för .changes-filen (om ett kommando har angivits med DEB_CHECK_COMMAND eller med --check-command).

11. It runs the sign hook and signs using the OpenPGP backend (as long as it is not an UNRELEASED build, or --no-sign is specified) to sign the .dsc file (if any, unless -us or --unsigned-source is specified), the .buildinfo file (unless -ui, --unsigned-buildinfo, -uc or --unsigned-changes is specified) and the .changes file (unless -uc or --unsigned-changes is specified).

12. Kör kroken done.

FLAGGOR
Alla långa flaggor kan ges både på kommandoraden och i dpkg-buildpackage:s system- och användarkonfigurationsfiler. En rad i konfigurationsfilen är antingen en flagga (precis samma som på kommandoraden, men utan inledande bindestreck) eller en kommentar (om den börjar med ett ”#”).

--build=typ
    Specifies the build type from a comma-separated list of components (since dpkg 1.18.5). All the specified components get combined to select the single build type to use, which implies a single build run with a single .changes file generated. Passed to dpkg-genchanges.

    Tillåtna värden är:

    source
        Bygger källkodspaketet.

        Observera: När det här värdets används på egen hand och om du bara vill bygga (om) källkodspaketet från ett rent källkodsträd, är det alltid ett bättre alternativ att köra dpkg-source direkt eftersom det inte kräver att några byggberoenden som annars krävs för att anropa målet clean installeras.

    any Bygger arkitekturspecifika binärpaket.

    all Bygger de arkitekturoberoende binärpaketen.

    binary
        Bygger arkitekturspecifika och -oberoende binärpaket. Detta är ett alias till any,all.

    full
        Bygger allting. Detta är ett alias för source,any,all, och är detsamma som standardläget om inga byggflaggor anges.

-g  Motsvarar --build=source,all (sedan dpkg 1.17.11).

-G  Motsvarar --build=source,any (sedan dpkg 1.17.11).

-b  Motsvarar --build=binary eller --build=any,all.

-B  Motsvarar --build=any.

-A  Motsvarar --build=all.

-S  Motsvarar --build=source.

-F  Motsvarar --build=full, --build=source,binary eller --build=source,any,all (sedan dpkg 1.15.8).

--target=mål[,...]
--target mål[,...]
-T, --rules-target=mål[,...]
    Anropar debian/rules mål en gång per angivet mål, efter att ha konfigurerat byggmiljön (förutom att anropa dpkg-source --before-build), och avbryter byggprocessen efteråt (sedan dpkg 1.15.0, lång flagga sedan dpkg 1.18.8, stöd för flera mål sedan dpkg 1.18.16). Om --as-root också anges körs kommandot som root (se --root-command). Observera att kända mål som måste köras som root inte behöver flaggan (dvs. målen clean, binary, binary-arch och binary-indep).

--as-root
    Ger endast mening tillsammans med --target (sedan dpkg 1.15.0). 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.

--build-by=maintainer-address
--source-by=maintainer-address (since dpkg 1.21.10)
    Pass as -m to dpkg-genchanges. See its manual page.

--release-by=maintainer-address
--changed-by=maintainer-address (since dpkg 1.21.10)
    Pass as -e to dpkg-genchanges. See its manual page.

-a, --host-arch arkitektur
    Ange Debianarkitekturen vi bygger för (lång flagga sedan dpkg 1.17.17). 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 (lång flagga sedan dpkg 1.17.17). 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 (sedan dpkg 1.17.17). Standardvärde är värdmaskinen.

--target-type gnu-system-type
    Ange GNU-systemtyp vi binärerna vi som byggs bygger för (sedan dpkg 1.17.17). 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.

-P, --build-profile=profil[,...]
    Ange profil(er) vi bygger, som en kommaavdelad lista (sedan dpkg 1.17.2, lång flagga sedan dpkg 1.18.8). 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, --jobs[=jobb|auto]
    Specifies the number of jobs allowed to be run simultaneously (since dpkg 1.14.7, long option since dpkg 1.18.8). The number of jobs matching the number of online processors if auto is specified (since dpkg 1.17.10), or unlimited number if jobs is not specified. The default behavior is auto (since dpkg 1.18.11) in non-forced mode (since dpkg 1.21.10), and as such it is always safer to use with any package including those that are not parallel-build safe. Setting the number of jobs to 1 will restore serial execution.

    Will add parallel=jobs or parallel to the DEB_BUILD_OPTIONS environment variable which allows debian/rules files to opt-in to use this information for their own purposes. The jobs value will override the parallel=jobs or parallel option in the DEB_BUILD_OPTIONS environment variable. Note that the auto value will get replaced by the actual number of currently active processors, and as such will not get propagated to any child process. If the number of online processors cannot be inferred then the code will fallback to using serial execution (since dpkg 1.18.15), although this should only happen on exotic and unsupported systems.

-J, --jobs-try[=jobb|auto]
    This option (since dpkg 1.18.2, long option since dpkg 1.18.8) is equivalent to the -j above.

    Since the behavior for -j changed in dpkg 1.21.10 to the opt-in mode, you can use this option instead if you need to guarantee semantics across dpkg release series.

--jobs-force[=jobs|auto]
    This option (since dpkg 1.21.10) is equivalent to the --jobs option except that it will enable forced parallel mode, by adding the make -j option with the computed number of parallel jobs to the MAKEFLAGS environment variable.

    This should cause all subsequent make invocations to inherit the option, thus forcing the parallel setting on the packaging (and possibly the upstream build system if that uses make(1)) regardless of their support for parallel builds, which might cause build failures.

    Note: Any Makefile that is not parallel-safe should be considered to be buggy. These should either be made parallel-safe, or marked as not being safe with the make(1) .NOTPARALLEL target.

-D, --check-builddeps
    Kontrollera byggberoenden och -konflikter; avbryt om de inte uppfylls (lång flagga sedan dpkg 1.18.8). Detta är standardbeteendet.

-d, --no-check-builddeps
    Kontrollera inte byggberoenden eller -konflikter (lång flagga sedan dpkg 1.18.8).

--ignore-builtin-builddeps
    Kontrollera inte inbyggda byggberoenden och -konflikter (sedan dpkg 1.18.2). Detta är de distributionsberoende byggberoendena som vanligtvis krävs i en byggmiljö, paketuppsättningen som kallas Build-Essential (”Bygg-Nödvändiga”).

--rules-requires-root
    Följ inte fältet Rules-Requires-Root, fall tillbaka på dess gamla förval (sedan dpkg 1.19.1).

-nc, --no-pre-clean
    Städa inte upp byggträdet före bygget (lång flagga sedan dpkg 1.18.8). Implicerar -b om inget annat har valts bland -F, -g, -G, -B, -A eller -S. Implicerar -d med -S (sedan dpkg 1.18.0).

--pre-clean
    Städa källkodsträdet före bygget (sedan dpkg 1.18.8). Detta är standardbeteendet.

-tc, --post-clean
    Städa källkodsträdet (använder få-root-kommando debian/rules clean) efter att paketet har byggts (lång flagga sedan dpkg 1.18.8).

--no-post-clean
    Städa inte upp byggträdet efter bygget (sedan dpkg 1.19.1). Detta är standardbeteendet.

--sanitize-env
    Sanera byggmiljön (sedan dpkg 1.20.0). Detta återställer eller tar bort miljövariabler, umask, och eventuella andra processattribut som annars kan påverka paketbygget ogynnsamt. Eftersom den officiella startpunkten för att bygga paket är debian/rules kan inte paket vara beroende av att de här inställningarna är på plats, och bör därför fungera även när de inte är det. Vad som saneras är återförsäljarspecifikt.

-r, --root-command=gain-root-command
    När dpkg-buildpackages behöver exekvera delar av byggprocessen som root sätter den kommandot som ska exekveras efter få-root-kommando om ett sådant har angivits (lång flagga sedan dpkg 1.18.8). 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 ska anropas samt de parametrar det ska 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 ska startas.

-R, --rules-file=rules-fil
    För att bygga ett Debianpaket körs normalt kommandot debian/rules med flera olika standardparametrar (sedan dpkg 1.14.17, lång flagga sedan dpkg 1.18.8). 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 (sedan dpkg 1.17.6). Kommandot ska 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 (sedan dpkg 1.17.6). Kan användas flera gånger.

--hook-kroknamn=krokkommando
    Sätter den angivna skalkoden i krokkommando som kroken kroknamn, vilket körs vid de tidpunkter som anges i byggstegen (sedan dpkg 1.17.6). Kroken kommer alltid att exekveras även om de efterföljande funktionerna inte utförs (förutom kroken binary). Alla krokar körs i den uppackade källkodskatalogen.

    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 kroknamn:

    init preclean source build binary buildinfo changes postclean check sign done

    krokkommando stöder följande substitueringsformatsträng, som appliceras på den föra exekvering:

    %%  Ett ensamt %-tecken.

    %a  Ett booleskt 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.

--buildinfo-file=filnamn
    Ange filnamn att använda för den skapade .buildinfo-filen (sedam dpkg 1.21.0).

--buildinfo-option=val
    Sänder flaggan val till dpkg-genbuildinfo (sedan dpkg 1.18.11). Kan användas flera gånger.

--sign-backend=sign-backend
    Specify an OpenPGP backend interface to use when invoking the sign-command (since dpkg 1.21.10).

    The default is auto, where the best current backend available will be used. The specific OpenPGP backends supported in order of preference are:

    sop (any conforming Stateless OpenPGP implementation)
    sq (from Sequoia-PGP)
    gpg (from GnuPG)
-p, --sign-command=signeringskommando
    When dpkg-buildpackage needs to execute an OpenPGP backend command to sign a source control (.dsc) file or a .changes file it will run sign-command (searching the PATH if necessary) instead of the default or auto-detected backend command (long option since dpkg 1.18.8). sign-command will get all the arguments defined by the --sign-backend. sign-command should not contain spaces or any other shell metacharacters.

-k, --sign-keyid=key-id
--sign-key=key-id
    Specify an OpenPGP key-ID (either a fingerprint or a user-ID) for the secret key to use when signing packages (--sign-key since dpkg 1.18.8, --sign-keyid since dpkg 1.21.10).

--sign-keyfile=key-file
    Specify an OpenPGP key-file containing the secret key to use when signing packages (since dpkg 1.21.10).

    Note: For security reasons the key-file is best kept locked with a password.

-us, --unsigned-source
    Signera inte källkodspaketet (lång flagga sedan dpkg 1.18.8).

-ui, --unsigned-buildinfo
    Signera inte .buildinfo-filen (sedam dpkg 1.18.19).

-uc, --unsigned-changes
    Signera inte .buildinfo- och .changes-filerna (lång flagga sedan dpkg 1.18.8).

--no-sign
    Signera inga filer, detta omfattar källkodspaketet, .buildinfo-filen och .changes-filen (sedan dpkg 1.18.20).

--force-sign
    Tvinga signering av de slutliga filerna (sedan dpkg 1.17.0), oberoende av -us, --unsigned-source, -ui, --unsigned-buildinfo, -uc, --unsigned-changes eller annan intern heuristik.

-sn
-ss
-sA
-sk
-su
-sr
-sK
-sU
-sR
-i, --diff-ignore[=reg.uttr]
-I, --tar-ignore[=mönster]
-z, --compression-level=nivå
-Z, --compression=komprimering
    Sänds vidare utan ändringar till dpkg-source. Se dess manualsida.

--source-option=val
    Sänd flaggan val till dpkg-source (sedan dpkg 1.15.6). Kan användas flera gånger.

--changes-file=filnamn
    Använd filnamn för den genererade .changes-filen (sedan dpkg 1.21.0).

--changes-option=val
    Sänder flaggan val till dpkg-genchanges (sedan dpkg 1.15.6). Kan användas flera gånger.

--admindir=kat
--admindir kat
    Ändra platsen för dpkg-databasen (sedan dpkg 1.14.0). Förvald plats är /var/lib/dpkg.

-?, --help
    Visar hjälpskärm och avslutar.

--version
    Visar version och avslutar.

MILJÖVARIABLER

  Extern miljö

DEB_CHECK_COMMAND
    Om satt, används som kommandot för att kontrollera .changes-filen (sedan dpkg 1.17.6). Överstyrs av flaggan --check-command.

DEB_SIGN_KEYID
    If set, it will be used to sign the .changes, .buildinfo and .dsc files (since dpkg 1.17.2). Overridden by the --sign-key option.

DEB_SIGN_KEYFILE
    If set, it will be used to sign the .changes, .buildinfo and .dsc files (since dpkg 1.21.10). Overridden by the --sign-keyfile option.

DEB_BUILD_OPTIONS
    Om satt, innehåller en blankstegsavdelad lista med flaggor som kan påverka byggprocessen i debian/rules, och beteendet på vissa dpkg-kommandot.

    Med nocheeck så kommer variabeln DEB_CHECK_COMMAND att ignoreras. Med parallel=N kommer antalet parallella jobb sättas till N, men kan överstyras av flaggan --jobs-try.

DEB_BUILD_PROFILES
    Om satt, används som aktiv(a) byggprofil(er) för paketet som byggs (sedan dpkg 1.17.2). Det är en blankstegsavdelad lista med profilnamn. Överstyrs av flaggan -P.

DPKG_COLORS
    Väljer färgläge (sedan dpkg 1.18.5). För närvarande godtas följande värden: auto (förval), always och never.

DPKG_NLS
    Om satt, används för att bestämma om lokalt språkstöd ska aktiveras, även känt som internationaliseringsstöd (eller i18n) (sedan dpkg 1.19.0). Tillåtna värden är: 0 och 1 (förval).

  Intern miljö
Ä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, eftersom filen är huvudstartpunkt för att bygga paket och det även bör stödas att köra den fristående.

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

DEB_RULES_REQUIRES_ROOT
    Den här variabeln sätts till värdet som hämtas från fältet Rules-Requires-Root eller från kommandoraden. När satt kommer det vara ett giltigt värde för fältet Rules-Requires-Root. Det används för att meddela debian/rules huruvida rootless-builds.txt-specifikation stöds.

DEB_GAIN_ROOT_CMD
    Den här variabeln sätts till få-root-kommando när fältet Rules-Requires-Root är satt till ett värde annat än no och binary-targets.

SOURCE_DATE_EPOCH
    Den är variabeln sätts till Unix-tidsstämpeln sedan epoken för den senaste posten i debian/changelog, om den inte redan definierats.

FILER

/etc/dpkg/buildpackage.conf
    Konfigurationsfil för hela systemet

$XDG_CONFIG_HOME/dpkg/buildflags.conf eller
$HOME/.config/dpkg/buildflags.conf
    Användarens konfigurationsfil.

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, om källkodspaketet inte både bygger arkitektursoberoende och -beroende binärpaket (sedan dpkg 1.18.8) 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
/usr/share/doc/dpkg-1.21.15-r3/spec/rootless-builds.txt, dpkg-source(1), dpkg-architecture(1), dpkg-buildflags(1), dpkg-genbuildinfo(1), dpkg-genchanges(1), fakeroot(1), lintian(1), <https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/>, sq(1), gpg(1).

ÖVERSÄTTNING
Peter Krefting och Daniel Nylander.