Build Service/Kommandozeilenwerkzeuge
aus openSUSE, der freien Wissensdatenbank
Das Kommandozeilenwerkzeug des openSUSE Build Service existiert in zwei Varianten, einer in Perl und einer in Python implementierten. Beide Pakete enthalten eine Bibliothek die auch von eigenem Kode benutzt werden kann. Werkzeugpakete finden Sie für verschiedene Distributionen (SUSE Linux, openSUSE, Fedora, Mandriva, Debian) unter http://software.opensuse.org/download/openSUSE:/Tools/
Eine allgemeine Anleitung finden Sie hier.
osc, der Python-Kommandozeilenklient
osc ist ein Subversion-ähnlicher Client. Er dient als Client für den Quellkodedepotabschnitt des Build Service und wird dazu verwendet, Metadaten zu bearbeiten und Abfragen zu Baureslutaten durchzuführen.
Einführende Nutzungsbeispiele finden Sie weiter unten.
osc ist erweiterbar
. Sie können das Verhalten ändern oder ihre eigenen Kommandos schreiben.
Der Python-Klient fragt Sie beim ersten Start nach ihrem Berechtigungsnachweis (Benutzername und Passwort) und speichert ihn in ~/.oscrc. (Er nutzt aber auch .netrc, falls diese Datei existiert.)
Einige Beispiele:
Anzeigen der Nutzungshilfen zu einem Kommando
osc help osc help <cmd>
Auflisten des vorhandenen Inhalts eines Servers
osc ls # Projekte auflisten osc ls Apache # Pakete in einem Projekt auflisten osc ls Apache subversion # Dateien eines Pakets in einem Projekt auflisten
Inhalte aus-checken/herunterladen
osc co Apache # das ganze Projekt osc co Apache subversion # ein Paket osc co Apache subversion foo # eine einzelne Datei
Ein Arbeitsverzeichnis aktualisieren
osc up
osc up <Verzeichnis>
osc up * # innerhalb eines Projektverzeichnis, aktualisiere alle Pakete
osc up # innerhalb eines Projektverzeichnis, aktualisiere alle Pakete
UND lade alle neu hinzugefügten Pakete herunter
Geänderte Inhalte hochladen
osc ci # aktuelles Verzeichnis osc ci <Datei1> <Datei2> # nur bestimmte Dateien osc ci <Ordner1> <Ordner2> ... # mehrere Pakete osc ci -m "foobar aktualisiert" # Eine commit-Nachricht angeben
Commit-Protokoll anschauen
osc log
Status anzeigen (welche Dateien wurden lokal geändert)
osc st osc st <Verzeichnis>
Falls eine Aktualisierung nicht automatisch eingepflegt werden kann, befindet sich eine Datei im Status 'C' (Conflict/Konflikt), wobei Konflikte mit speziellen <<<<<<< und >>>>>>> Zeilen markiert werden. Nachdem das Problem manuell gelöst wurde nutzen Sie
osc resolved <Datei>
Dateien für den nächsten 'checkin' als hinzugefügt (added) oder entfernt (removed) markieren
osc add foo osc rm foo
Füge alle neuen Dateien als lokale Kopien hinzu und entferne alle verschwundenen Dateien.
osc addremove
Erstelle ein Diff (Differenzabbild) um die Änderungen zu sehen
osc diff [Datei]
Zeigen die Bauergebnisse des Pakets
osc results osc results <Plattform>
Anzeigen der Protokolldatei eines Pakets (Sie müssen dabei in einem Paketverzeichnis sein)
osc log <Plattform> <Architektur>
Anzeigen der Adresse der .repo-Dateien, welche die Paketquelleninformationen für Yum, YaST, Zypper und Smart enthalten.
osc repourls [Verzeichnis]
Veranlasse einen Paketneubau für alle Depots/Architekturen eines Pakets
osc rebuildpac [Verzeichnis]
Bauen eines Pakets auf ihrer lokalen Plattform
osc build <Plattform> <Architektur> <spec-Datei> [--clean|--noinit]
Bauen eines Pakets auf ihrer lokalen Plattform für eine bestimmte Distribution
BUILD_DIST=... osc build <spec-Datei> [--clean|--noinit]
wobei BUILD_DIST gleich <Plattform>-<Architektur> ist
Anzeigen der konfigurierten Plattformen/Bauziele.
osc platforms [Projekt]
Anzeigen von Meta-Inforamtionen
osc meta prj <Projekt> osc meta pkg <Projekt> <Paket> osc meta user <Benutzername>
Bearbeiten von Meta-Informationen. Erstellt ein neues Paket/Projekt falls es nicht existiert. Es wird ein Editor mit den rohen XML-Metadaten geöffnet. Falls Sie unsicher sind, verwenden Sie stattdessen den Web-Client
.
osc meta prj -e <Projekt> osc meta pkg -e <Projekt> <Paket>
Paketmetadaten mit aus einer spec-Datei entnommenen Metadaten aktualisieren
osc updatepacmetafromspec <Verzeichnis>
Der Perl-Client 'opensuse-commandline'
Der Perl-Client (namens 'opensuse-commandline') wird zur Zeit nicht betreut. Verwenden Sie stattdessen den obigen 'osc'.
Der Perl-Client muss mit ihrem Benutzernamen und Passwort konfiguriert werden, welche in einer ~/.netrc-Datei mit folgender Zeile abgelegt werden müssen:
machine api.opensuse.org login $login password $pass
$login müssen $pass dabei durch ihren Benutzernamen und ihr Passwort ersetzt werden.

