Ü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 Anwender, der cowpoke ausführt, muss SSH-Zugriff auf die Baumschine als BUILDD_USER haben. Dieser Anwender 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 an 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.
ÜBERSETZUNG
Diese Übersetzung wurde mit dem Werkzeug po4a <URL:https://po4a.alioth.debian.org/> durch Chris Leick [email protected] im Juli 2012 erstellt und vom deutschen Debian-Übersetzer-Team korrekturgelesen. Bitte melden Sie alle Fehler in der Übersetzung an [email protected] oder als Fehlerbericht an das Paket devscripts. Sie können mit dem folgenden Befehl das englische Original anzeigen »man -L C Abschnitt deutsche_Handbuchseite«.