cowpoke - baut ein Debian-Quellpaket in einer fernen
Cowbuilder-Instanz
ÜBERSICHT
cowpoke [Optionen] Paketname.dsc
lädt ein Debian-Quellpaket auf einen
cowbuilder-Rechner hoch und baut es, wahlweise signiert es
außerdem das Ergebnis und lädt es in eine
»incoming«-Warteschlange hoch.
Die folgenden Optionen sind verfügbar:
- --arch=Architektur
- gibt die Debian-Architektur(en) an, für die gebaut wird. Es kann
eine durch Leerzeichen getrennte Liste von Architekturen benutzt werden,
um für alle in einem einzigen Durchgang zu bauen. Gültige
Architekturnamen sind jene, die durch dpkg-architecture(1)
für DEB_BUILD_ARCH zurückgegeben werden.
- --dist=Distribution
- gibt die Debian-Distribution(en) an, für die gebaut wird. Es kann
eine durch Leerzeichen getrennte Liste von Distributionen benutzt werden,
um für alle in einem einzigen Durchgang zu bauen. Es können
entweder Codenamen (wie sid oder squeeze) oder
Distributionsnamen (wie unstable oder experimental)
verwendet werden, aber Sie sollten üblicherweise durchgehend dabei
bleiben, den einen oder anderen zu benutzen, da dieser Name in Dateipfaden
benutzt wird und um alte Pakete für Vergleichsberichte zu orten.
Es ist nun auch möglich, mit dieser Option lokal
definierte Namen zu benutzen, wenn sie zusammen mit der Option
BASE_DIST in einer Konfigurationsdatei verwendet werden. Dies
erlaubt die Verwaltung und Benutzung eigens konfigurierter Bau-Chroots,
die Paketabhängigkeiten aus den Backports-Archiven oder einem
lokalen Depot beziehen können. Außerdem sind andere
ungewöhnliche Optionszusammenstellungen möglich, ohne die
Chroots zu verunreinigen, die zum sauberen Bauen und Hochladen in die
Hauptdepots gedacht sind. Lesen Sie die die Beschreibung von
BASE_DIST weiter unten.
- --buildd=Rechner
- gibt den fernen Rechner an, auf dem gebaut werden soll.
- --buildd-user=Name
- gibt den fernen Benutzernamen an, unter dem gebaut wird.
- --create
- erstellt das ferne cowbuilder-Wurzelverzeichnis, falls es noch
nicht existiert. Falls diese Option nicht übergeben wird, ist es
für die angegebene --dist oder --arch ein Fehler,
über kein existierendes cowbuilder-Wurzelverzeichnis an der
erwarteten Stelle zu verfügen.
Der --buildd-user muss das Recht haben, auf dem
Baurechner das RESULT_DIR zu erstellen oder ein Administrator mit
den nötigen Rechten muss es zuerst erstellen und diesem Benutzer
(oder einer Gruppe, der er angehört) Schreibzugriff darauf geben,
damit diese Option erfolgreich ist.
- --return=[Pfad
- kopiert Ergebnisse des Bauens nach Pfad. Falls Pfad nicht
angegeben wurde, dann werden sie an das aktuelle Verzeichnis
zurückgegeben. Der angegebene Pfad muss existieren, er wird nicht
erstellt.
- --no-return
- kopiert Ergebnisse des Bauens nicht nach RETURN_DIR (setzt eine
Pfadeinstellung hierfür in den Konfigurationsdateien außer
Kraft).
- --dpkg-opts='Option1
Option2 …'
- gibt zusätzliche Optionen an, die an dpkg-buildpackage(1)
übergeben werden. Mehrere Optionen werden durch Leerzeichen
getrennt. Dies wird alle in DEBBUILDOPTS angegebenen Optionen in
der pbuilderrc des Baurechners außer Kraft setzen.
- --create-opts='Cowbuilder-Option'
- gibt zusätzliche Argumente an, die unverändert an
Cowbuilder weitergereicht werden, wenn eine Chroot zum ersten Mal
(mittels der obigen Option --create) erstellt wird. Falls mehrere
Optionen weitergereicht werden müssen, sollte diese Option separat
für jede einzelne angegeben werden.
Z.B. --create-opts "--othermirror" --create-opts
"deb http://…"
Diese Option wird jede für eine Chroot in den
Cowpoke-Konfigurationsdateien angegebene CREATE_OPTS außer
Kraft setzen.
- --update-opts='Cowbuilder-Option'
- gibt zusätzliche Argumente an, die unverändert an
Cowbuilder weitergereicht werden, wenn die Chroot aktualisiert
wird. Falls mehrere Optionen weitergereicht werden müssen, sollte
diese Option separat für jede einzelne angegeben werden.
Diese Option wird jede für eine Chroot in den
Cowpoke-Konfigurationsdateien angegebene UPDATE_OPTS außer
Kraft setzen.
- --build-opts='Cowbuilder-Option'
- gibt zusätzliche Argumente an, die unverändert an
Cowbuilder weitergereicht werden, wenn ein Paket gebaut wird. Falls
mehrere Optionen weitergereicht werden müssen, sollte diese Option
separat für jede einzelne angegeben werden.
Diese Option wird jede für eine Chroot in den
Cowpoke-Konfigurationsdateien angegebene BUILD_OPTS außer
Kraft setzen.
- --sign=Schlüsselkennung
- gibt den Schlüssel an, mit dem Pakete signiert werden. Dies wird
jedes SIGN_KEYID, das für eine Chroot in den
Cowpoke-Konfigurationsdateien angegeben wurde, außer Kraft setzen.
- --upload=Warteschlange
- gibt die Dput-Warteschlange an, in die signierte Pakete hochgeladen
werden. Dies wird jede UPLOAD_QUEUE, die für eine Chroot in
den Cowpoke-Konfigurationsdateien angegeben wurde, außer Kraft
setzen.
- --help
- zeigt eine kurze Zusammenfassung der verfügbaren Optionen und der
aktuellen Konfiguration.
- --version
- zeigt die aktuelle Versionsinformation.
Wenn cowpoke ausgeführt wird, werden die folgenden
Optionen von globalen, benutzer- und objektbezogenen Konfigurationsdateien
gelesen, falls vorhanden. Dateipfade können absolut oder relativ
sein, letztere sind zum BUILDD_USER-Home-Verzeichnis relativ. Da die
Pfade bei der Benutzung typischerweise in Anführungszeichen stehen,
wird darauf keine Tilde-Expandierung durchgeführt.
Dies gilt für jede Architektur und
Distribution in einem einzelnen Cowpoke-Aufruf.
- BUILDD_HOST
- die Netzwerkadresse oder FQDN der Baumaschine auf der cowbuilder
konfiguriert ist. Dies könnte durch die Befehlszeilenoption
--buildd außer Kraft gesetzt werden.
- BUILDD_USER
- der nicht privilegierte Benutzername für Operationen auf der
Baumaschine. Dies ist standardmäßig der lokale Name des
Benutzers, der cowpoke ausführt (oder ein Benutzername, der
in der SSH-Konfiguration für BUILDD_HOST angegeben wurd),
und kann durch die Befehlszeilenoption --buildd-user außer
Kraft gesetzt werden.
- BUILDD_ARCH
- die Debian-Architektur(en), für die gebaut wird. Dies muss zu
DEB_BUILD_ARCH der benutzten Bau-Chroot passen.
Standardmäßig ist es die Architektur des lokalen Rechners,
auf der cowpoke ausgeführt wird. Sie könnte durch die
Befehlszeilenoption --arch außer Kraft gesetzt werden. Hier
könnte eine durch Kommas getrennte Liste (in
Anführungszeichen) verwendet werden, um um für alle hieraus
in einem einzigen Durchgang zu bauen.
- BUILDD_DIST
- die Debian-Distribution(en), für die gebaut wird. Eine durch
Leerzeichen getrennte Liste von Distributionen (in
Anführungszeichen) kann benutzt werden, um alle in einem einzigen
Durchgang zu bauen. Dies könnte durch die Befehlszeilenoption
--dist außer Kraft gesetzt werden.
- INCOMING_DIR
- der Installationspfad auf der Baumaschine, in der das Quellpaket anfangs
platziert wird. Dies muss durch den BUILDD_USER schreibbar
sein.
- PBUILDER_BASE
- die Wurzel des Dateisystems für alle Pbuilder-COW- und
Ergebnisdateien. Architektur- und distributionsspezifische
Unterverzeichnisse werden normalerweise darunter erstellt. Der
APT-Zwischenspeicher und die temporären Bauverzeichnisse werden
ebenso unterhalb dieses Pfads liegen.
- SIGN_KEYID
- Falls diese Option gesetzt ist, wird erwartet, dass sie die
GPG-Schlüsselkennung zur Übergabe an debsign(1)
enthält, falls die Pakete aus der Ferne signiert werden sollen. Sie
werden um Bestätigung gebeten, ob Sie die Pakete signieren
möchten, nachdem das Bauen aller Pakete abgeschlossen ist. Falls
diese Option nicht gesetzt oder eine leere Zeichenkette ist, wird kein
Versuch unternommen, Pakete zu signieren. Sie kann auf einer
Architektur- oder Distributionsspezifischen Basis mittels
der weiter unten beschriebenen Option
Architektur_Distribution_SIGN_KEYID oder
jeweils beim Aufruf mit der Befehlszeilenoption --sign außer
Kraft gesetzt werden.
- UPLOAD_QUEUE
- Falls diese Option gesetzt ist, wird erwartet, dass sie eine
»host«-Angabe für dput(1) enthält, die
verwendet wird, um sie nach dem Signieren hochzuladen. Sie werden um
Bestätigung gebeten, ob Sie die Pakete nach dem Signieren hochladen
möchten. Falls diese Option nicht gesetzt oder eine leere
Zeichenkette ist, wird kein Versuch unternommen, diese Pakete hochzuladen.
Falls SIGN_KEYID nicht gesetzt ist, wird diese Option ganz
ignoriert. Sie kann auf einer architektur- oder
distributionsspezifischen Basis mittels der weiter unten
beschriebenen Option
Architektur_Distribution_UPLOAD_QUEUE oder
jeweils beim Aufruf mit der Befehlszeilenoption --upload
außer Kraft gesetzt werden.
- BUILDD_ROOTCMD
- der Befehl, der zum Erlangen von Root-Rechten auf der fernen Baumaschine
benutzt wird. Falls nicht gesetzt, ist die Vorgabe sudo(8). Dies
ist nur nötig, um cowbuilder aufzurufen und ihm zu erlauben,
in seine Chroot zu gelangen, daher könnten Sie diesen Nutzer darauf
beschränken, diesen Befehl mit ausgeweiteten Rechten
auszuführen. Ein Eintrag wie der folgende in
»sudoers« wird es ermöglichen, cowbuilder ohne
einen zusätzlich nötigen Passworteintrag aufzurufen:
-
Ihrbenutzer ALL = NOPASSWD: /usr/sbin/cowbuilder
-
- Alternativ könnten Sie SSH mit einem weitergeleiteten
Schlüssel oder irgendeinem anderen Mechanismus, der Ihrer lokalen
Zugriffsrichtlinie entspricht, verwenden. Die Benutzung von su -c
ist hier nicht wirklich passend, da seine Maskierungsanforderungen sich
etwas vom Rest unterscheiden.
- DEBOOTSTRAP
- das Hilfswerkzeug, das beim Erstellen einer neuen Chroot benutzt wird.
Alternativen sind debootstrap oder cdebootstrap.
- RETURN_DIR
- Falls gesetzt, werden Paketdateien, die Ergebnis des Bauens sind, in den
Pfad (lokal oder in der Ferne) kopiert, auf den dies gesetzt ist. Der Pfad
muss existieren, er wird nicht angelegt. Diese Option ist
standardmäßig nicht gesetzt und kann mit --return
oder --no-return überschrieben werden.
Dies sind Variablen der Form $arch_$dist_VAR, die nur
für ein bestimmtes Architektur-/Distributions-Bauziel gelten.
- Architektur_Distribution_RESULT_DIR
- Der Verzeichnispfad auf der Baumaschine, in dem die resultierenden (Quell-
und Binär-)Pakete abgelegt werden und wo ältere Versionen
der Pakete, die vorher gebaut wurden, gefunden werden können. Falls
irgendwelche derartigen älteren Pakete existieren, wird
debdiff benutzt, um das neue Paket mit der vorhergehenden Version
zu vergleichen, nachdem das Bauen abgeschlossen ist. Das Ergebnis wird in
das Bauprotokoll eingefügt. Dateien darin müssen für
den BUILDD_USER für Plausibilitätsprüfungen
mit lintian(1) und debdiff(1) und das Hochladen mit
dput(1) lesbar sein. Falls diese Option für irgendwelche
Architektur- und Distributionskombinationen nicht angegeben ist, dann wird
$PBUILDER_BASE/$arch/$dist/result vorgegeben.
- Architektur_Distribution_BASE_PATH
- das Verzeichnis, in dem die CoW-Master-Dateien vorliegen werden (oder
erzeugt werden, falls die Befehlszeilenoption --create
übergeben wurde). Falls diese Option für irgendwelche
Architekturen und Distributionen nicht angegeben wurde, dann wird
$PBUILDER_BASE/$arch/$dist/base.cow vorgegeben.
- Architektur_Distribution_BASE_DIST
- der Codename, der anstelle von Distribution als Option
--distribution an Cowbuilder übergeben wird. Dies ist
nötig, wenn Distribution ein lokal bedeutsamer Name ist, der
irgendeiner speziell konfigurierten Bau-Chroot wie
»wheezy_backports« zugewiesen wurde und nicht der
Debootstrap bekannte offizielle Suite-Name einer
Distributionsveröffentlichung ist. Diese Option kann nicht auf der
Befehlszeile außer Kraft gesetzt werden, da dies selten, wenn nicht
sogar nie, für einzelne Aufrufe von Cowpoke sinnvoll
wäre. Falls diese Option nicht für eine Architektur- und
Distributionskombination angegeben wurde, wird als Voreinstellung
Distribution genommen.
- Architektur_Distribution_CREATE_OPTS
- ein Bash-Feld, das zusätzliche Optionen enthält, die
unverändert an Cowbuilder weitergegeben werden, wenn diese
Chroot zum ersten Mal (mittels der Option --create) erstellt wird.
Dies ist nützlich, wenn Optionen wie --othermirror zum
Erstellen spezialisierter Chroots wie »wheezy_backports«
erwünscht werden. Standardmäßig ist dies nicht
gesetzt. Alle darin gesetzten Werte werden außer Kraft gesetzt,
falls auf der Befehlszeile die Option --create-opts
übergeben wird.
Jedes Element dieses Feldes entspricht einem einzelnen
Argument (im Sinne von ARGV), das an Cowbuilder übergeben wird.
Dadurch wird sichergestellt, dass Argumente, die Leerräume
enthalten oder merkwürdige Maskierungsanforderungen oder andere
Sonderzeichen haben, nicht verwürfelt werden, ehe Cowbuilder sie
bekommt.
Die Initialisierung von Bash-Feldern geschieht in folgender
Form:
OPTS=( "Arg1" "Arg 2" "--option"
"Wert" "--opt=Wert" "etc. etc." )
- Architektur_Distribution_UPDATE_OPTS
- ein Bash-Feld, das zusätzliche Optionen enthält, die
jedesmal, wenn die Basis dieser Chroot aktualisiert wird,
unverändert an Cowbuilder weitergereicht werden. Es
verhält sich ähnlich der oben beschriebenen
CREATE_OPTS-Optionen, außer dass es beim Aktualisieren der
Chroot tätig wird.
- Architektur_Distribution_BUILD_OPTS
- ein Bash-Feld, das zusätzliche Optionen enthält, die
jedesmal, wenn in dieser Chroot ein Paket gebaut wird, unverändert
an Cowbuilder weitergereicht werden. Dies ist nützlich, wenn
Sie Optionen wie --twice verwenden, um die sich Cowpoke nicht
direkt kümmern muss. In anderen Fällen verhält es
sich ähnlich der oben beschriebenen CREATE_OPTS,
außer dass es während der Bauphase von Cowbuilder
tätig wird.
- Architektur_Distribution_SIGN_KEYID
- ein optionales Architektur- und ein distributionsspezifisches
Außer-Kraft-Setzen für die globale Option SIGN_KEYID.
- Architektur_Distribution_UPLOAD_QUEUE
- ein optionales Architektur- und ein distributionsspezifisches
Außer-Kraft-Setzen für die globale Option
UPLOAD_QUEUE
- /etc/cowpoke.conf
- globale Konfigurationsoptionen; setzen die fest kodierten Vorgaben
außer Kraft
- ~/.cowpoke
- Konfigurationsoptionen pro Benutzer; werden jede globale Konfiguration
ignorieren
- .cowpoke
- Konfigurationsoptionen pro Projekt; werden jede Konfiguration pro Benutzer
oder globale Konfiguration überstimmen, falls cowpoke aus
dem Verzeichnis aufgerufen wird, in dem sie existieren.
Falls die Umgebungsvariable COWPOKE_CONF gesetzt ist,
gibt sie eine zusätzliche Konfigurationsdatei an, die alles
vorhergehende außer Kraft setzt. Optionen, die explizit auf der
Befehlszeile angegeben werden, ignorieren alle
Konfigurationsdateien.
Um eine cowbuilder-Instanz zu konfigurieren. die mit
cowpoke benutzt wird, wird nichts sonderlich Spezielles
benötigt. Erstellen Sie sie einfach in der Variante, die Sie mit
»cowbuilder --create« gemäß der
cowbuilder-Dokumentation benötigen. Dann konfigurieren Sie
cowpoke mit dem Benutzer, der Architektur und den zum Zugriff
benötigten Pfadinformationen auf den Rechnern, von denen Sie es
aufrufen wollen (oder konfigurieren Sie cowpoke alternativ mit dem
Pfad, der Architektur und der Distributionsinformation und übergeben
Sie ihm beim ersten Aufruf die Option --create). Der Baurechner, der
cowbuilder ausführt, benötigt kein lokal installiertes
cowpoke.
Auf der Baumaschine sollten die Pakete lintian und
devscripts für Plausibilitätsprüfungen nach dem
Bauen installiert sein. Nach Beendigung werden das Bauprotokoll und die
Ergebnisse der automatischen Prüfungen in INCOMING_DIR
aufgezeichnet. Falls Sie signierte Pakete hochladen möchten, wird die
Baumaschine außerdem erforden, dass dput(1) installiert und
für die Benutzung des durch die UPLOAD_QUEUE angegebenen Alias
»Rechner« konfiguriert ist. Falls rsync(1)
sowohl auf der lokalen als auch auf der Baumaschine verfügbar ist,
wird es für die Übertragung des Quellpakets benutzt (dies
könnte bei einigen Übertragungen der orig.tar.*
Bandbreite sparen, wenn aufeinander folgende Debian-Revisionen gebaut
werden).
Der Benutzer, der cowpoke ausführt, muss SSH-Zugriff
auf die Baumschine als BUILDD_USER haben. Dieser Benutzer muss in der
Lage sein, cowbuilder als Root durch Benutzen von
BUILDD_ROOTCMD aufzurufen. Zur Installation auf der Baumaschine
werden keine Schlüssel zum Signieren benötigt (und werden
ignoriert, wenn sie dort sind). Falls das Paket signiert ist, werden die
Schlüssel auf dem Rechner, die cowpoke ausführt,
erwartet.
Wenn cowpoke aufgerufen wird, wird es zuerst versuchen, das
cowbuilder-Image zu aktualisieren, falls dies nicht bereits am selben
Tag getan wurde. Dies wird durch das Vorhandensein oder Fehlen einer
cowbuilder-$arch-$dist-update-log-$date-Datei im Verzeichnis
INCOMING_DIR geprüft. Sie können die Datei verschieben,
entfernen oder mit touch aktualisieren, falls Sie wünschen, dass das
Image außerhalb des üblichen Zyklus aktualisiert wird. Ihr
Inhalt protokolliert die Ausgabe von cowbuilder während des
Aktualisierens (oder Erstellens) des Bauwurzelverzeichnisses.
Da cowbuilder eine Chroot erstellt und Sie, um dies zu tun,
Root-Rechte benötigen, erfordert cowpoke außerdem zu
einem bestimmten Grad Root-Zugriff. Daher ist es denkbar, dass all die
schrecklichen Dinge, die dabei schiefgehen können, auch bei Ihnen
schiefgehen. cowbuilder war bekannt dafür, versehentlich
Dateisysteme, die mit der Option »bind« außerhalb der
Chroot eingehängt sind, zu vernichten und es ist leicht
möglich, dass noch Schlimmeres passiert. Seien Sie daher vorsichtig,
bewahren Sie gute Sicherheitskopien der Dinge auf, die Sie nicht auf Ihrer
Baumaschine verlieren möchten und verwenden Sie cowpoke, um
alles auf einem Rechner zu verwahren, die nicht Ihre modernste
Entwicklerkiste mit Ihren letzten paar Stunden nicht übergebener
Arbeit ist.
cowbuilder(1), pbuilder(1), ssh-agent(1),
sudoers(5)
cowpoke wurde von Ron <ron@debian.org>
geschrieben.
ÜBERSETZUNG
Diese Übersetzung wurde mit dem Werkzeug po4a
<URL:https://po4a.org/> durch Chris Leick c.leick@vollbio.de im
Juli 2012 erstellt und vom deutschen Debian-Übersetzer-Team
korrekturgelesen. Bitte melden Sie alle Fehler in der Übersetzung an
debian-l10n-german@lists.debian.org oder als Fehlerbericht an das
Paket devscripts. Sie können mit dem folgenden Befehl das
englische Original anzeigen »man -L C Abschnitt
deutsche_Handbuchseite«.