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.