Provided by: devscripts_2.20.2ubuntu2_amd64 

BEZEICHNUNG
cowpoke - baut ein Debian-Quellpaket in einer fernen Cowbuilder-Instanz
ÜBERSICHT
cowpoke [Optionen] Paketname.dsc
BESCHREIBUNG
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.
OPTIONEN
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.
KONFIGURATIONSOPTIONEN
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.
Globale Vorgaben
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.
Architekur- und distributionsspezifische Optionen
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
KONFIGURATIONSDATEIEN
/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.
COWBUILDER-KONFIGURATION
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.
ANMERKUNGEN
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.
SIEHE AUCH
cowbuilder(1), pbuilder(1), ssh-agent(1), sudoers(5)
AUTOR
cowpoke wurde von Ron <ron@debian.org> geschrieben.
ÜBERSETZUNG
Diese Übersetzung wurde mit dem Werkzeug po4a <URL:https://po4a.alioth.debian.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«.
28. April 2008 COWPOKE(1)