deb-substvars(5) | dpkg suite | deb-substvars(5) |
deb-substvars - Ersetzungsvariablen in Debian-Quellen
debian/substvars, debian/binary-package.substvars, Variablen
Bevor dpkg-source, dpkg-gencontrol und dpkg-genchanges ihre Steuerinformationen (zu der Quell-control-Datei .dsc für dpkg-source und in die Standardausgabe für dpkg-gencontrol und dpkg-genchanges) schreiben, führen sie einige Variablenersetzungen in der Ausgabedatei durch.
Eine Variablenersetzung hat die Form ${Variablenname}. Variablennamen bestehen aus alphanumerischen Zeichen (a-zA-Z0-9, womit sie auch beginnen), Bindestrichen (-) und Doppelpunkten (:). Bei Variablennamen ist die Klein-/Großschreibung relevant, auch wenn sie sich auf Gebilde beziehen, die die Klein-/Großschreibung erhalten. Variablenersetzungen werden wiederholt durchgeführt, bis keine übrig geblieben sind; der komplette Text des Feldes nach der Ersetzung wird erneut auf weitere Ersetzungen geprüft.
Ersetzungsvariablen können in einer Datei festgelegt werden. Diese Dateien bestehen aus Zeilen der Form Name=Wert oder Name?=Wert. Der Operator = weist eine normale Ersetzungsvariable zu, während der Operator ?= (seit Dpkg 1.21.8) eine optionale Ersetzungsvariable zuweist, die keine Warnungen ausgibt, selbst wenn sie nicht verwandt wird. Leerraumzeichen am Zeilenende, leere Zeilen und Zeilen, die mit dem #-Symbol starten (Kommentare) werden ignoriert.
Variablen können über die allgemeine Option -V gesetzt werden. Sie können auch in der debian/substvars (bzw. in der über die allgemeine Option -T gesetzten Datei) angegeben werden.
Nachdem alle Ersetzungen erfolgt sind, wird jedes Auftreten der Zeichenkette ${} (die keine tatsächliche Ersetzungsvariable ist) durch das $-Zeichen ersetzt. Dies kann als Maskiersequenz wie in ${}{VARIABLE} verwandt werden, was dann zu ${VARIABLE} in der Ausgabe wird.
Falls auf eine Variable Bezug genommen wird, diese aber nicht definiert ist, wird es eine Warnung erstellen und ein leerer Wert wird angenommen.
Obwohl die Variablenersetzung bei allen Feldern der control-Datei vorgenommen wird, werden einige dieser Felder während des Bauens benötigt und verwendet, wenn die Ersetzung noch nicht erfolgt ist. Daher können Sie Variablen nicht in den Feldern Package, Source und Architecture verwenden.
Variablenersetzung erfolgt am Inhalt der Felder, nachdem sie ausgewertet wurden. Falls Sie eine Variable über mehrere Zeilen expandieren möchten, müssen Sie nach dem Zeilenumbruch daher kein Leerzeichen einfügen. Dies passiert bei der Ausgabe des Feldes implizit. Ist beispielsweise die Variable ${Description} auf „foo ist bar.${Newline}foo ist super.“ gesetzt und Sie haben das folgende Feld:
Description: Anwendung foo ${Description} . Weiterer Text.
Dann wird dies zu Folgenden führen:
Description: Anwendung foo foo ist bar. foo ist super. . Weiterer Text.
Zusätzlich sind die folgenden Standardvariablen immer verfügbar:
Hinweis: Beachten Sie, dass dies stets nur ein Schätzwert sein kann, da die tatsächliche Größe im installierten System stark vom verwandten Dateisystem und seinen Parametern abhängt. Daher kann es am Ende mehr oder weniger als in diesem Feld angegebenen Platz belegen.
dpkg(1), dpkg-vendor(1), dpkg-genchanges(1), dpkg-gencontrol(1), dpkg-shlibdeps(1), dpkg-source(1).
Die deutsche Übersetzung wurde 2004, 2006-2023 von Helge Kreutzmann <debian@helgefjell.de>, 2007 von Florian Rehnisch <eixman@gmx.de> und 2008 von Sven Joachim <svenjoac@gmx.de> angefertigt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 2 oder neuer für die Kopierbedingungen. Es gibt KEINE HAFTUNG.
2023-05-11 | 1.21.22 |