NAMN
- Provided by: dpkg-dev (Version: 1.23.7ubuntu1)
- Source: dpkg
- Report a bug
debian/substvars, debian/binärpaket.substvars, variabler
Innan dpkg-source, dpkg-gencontrol och dpkg-genchanges skriver sin styrinformation (till control-filen i källkodspaketet .dsc för dpkg-source och till standard ut för dpkg-gencontrol och dpkg-genchanges) kommer de utföra viss variabelsubstituering på utdatafilen.
En variabelsubstitution har formen ${variabelnamn}. Variabelnamn består av alfanumeriska tecken (a-zA-Z0-9), bindestreck (-) och kolon (:) och börjar med ett alfanumeriskt tecken, och är skiftlägeskänsliga. Variabelsubstitueringar utförs upprepade gånger tills det inte kvarstår några - det resulterande innehållet i fältet läses av på nytt efter substitueringen för att se om det behövs fler substitueringar.
Substitueringsvariabler kan anges i en fil. En sådan fil består av rader med variabeltilldelningar, vilka börjar med ett variabelknamn som omedelbart följs av en tilldelningsoperator, och sedan värdet. Varje operator ger värdet specifika attribut. Avslutande blanksteg på en rad, blanka rader och rader som börjar med en #-symbol (kommentarer) ignoreras.
Följande operatörer stöds:
Stöds sedan dpkg 1.21.8.
Stöds sedan dpkg 1.22.7.
Variabelnamnet måste anges på formen namnrymd följt av ett kolon (”:”) och sedan fältnamnet, så som tool:Depends. Alla implicita variabler för namnrymder som motsvarar samma fält kommer slås ihop med en känd fältseparator, eller ett blanksteg om fältseparatorn är okänd.
Stöds sedan dpkg 1.23.0.
Till exampel "något-package:Depends?=annat-paket (= 1.0), själva-paketet".
Variabler kan sättas genom att använda den gemensamma kommandoradsflaggan -V. De kan även anges i filen debian/substvars (eller vilken som helst annan fil som anges med gemensamma flaggan -T).
När alla substitueringar har utförts ersätts varje förekomst av strängen ${} (som inte är en faktisk substitueringsvariabel) med ett $-tecken. Detta kan användas som en ersättningssekvens såsom ${}{VARIABEL} vilket kommer bli till ${VARIABLE} i utdata.
Om en variabel refereras till men inte definieras kommer en varning att genereras och ett tomt värde används.
Medan variabelsubstituering görs på alla fält i styrfilen är det några av fälten som används och behövs vid byggning innan substitueringen ännu har utförts. Därför går det inte att använda variabler i fälten Package, Source och Architecture.
Variabelsubstituering sker över innehållet i fälten efter att de har tolkats, vilket innebär att om du vill att en variabel ska expanderas över flera rader så behöver du inte inkludera ett blanksteg efter nyradstecknet. Detta görs implicit när fältet skrivs ut. Till exempel, om variabeln ${Description} sätts till "foo är bar.${Newline}foo är bra." och du har följande fält:
Description: programmet foo
${Description}
.
Mer text.
Så blir resultatet:
Description: programmet foo foo är bar. foo är bra. . Mer text.
I tillägg är alltid följande standardvariabler tillgängliga:
Observera: Tänk på att det här aldrig kan vara något annat än ett närmevärde eftersom den faktiska storleken som används på det installerade systemet i stor grad beror på vilket filsystem som används och dess parameterar, vilket kan komma att använda mer eller mindre plats än vad som anges i det här fältet.
dpkg(1), dpkg-vendor(1), dpkg-genchanges(1), dpkg-gencontrol(1), dpkg-shlibdeps(1), dpkg-source(1).
Peter Krefting och Daniel Nylander.