ubuntuusers.de

Open Build Service

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

obs-logo.png Der Open Build Service 🇬🇧 (kurz OBS) ist ein Projekt der SUSE Linux GmbH 🇩🇪, um Software reproduzierbar und zentral in virtuellen Maschinen zu kompilieren und zu paketieren. Ziel ist es, saubere Installationspakete für unterschiedliche Linux-Distributionen auszuliefern. Im Gegensatz zu den PPAs von Canonical werden deutlich mehr Paketformate und auch andere Distrbutionen unterstützt. So ist es möglich, Pakete für Debian/Ubuntu, RedHat/CentOS/Fedora, Mageia/Mandriva, SUSE und Arch Linux gleichzeitig zu bauen.

Des Weiteren ist man nicht an Canonicals hauseigenes Versionskontrollsystem Bazaar gebunden, sondern kann alle gängigen Versionsverwaltungen ansprechen. Die Referenzimplementierung 🇬🇧 wird dazu verwendet, die Linux-Distribution openSUSE 🇩🇪 transparent und offen in Kooperation mit der Gemeinschaft zu erstellen. Die Plattform ist frei zugänglich und kann von jedem Open Source Projekt unentgeltlich verwendet werden. Der Quelltext ist ebenfalls verfügbar, so dass Interessierte auch ihren eigenen internen OBS aufsetzen können und sich an der Weiterentwicklung beteiligen können.

Hinweis:

Die Grundlagen der Paketerstellung [1] werden in diesem Artikel nicht behandelt, sondern als Vorwissen vorausgesetzt.

Weboberfläche

Am einfachsten gestaltet sich das Arbeiten unter build.opensuse.org 🇬🇧 direkt mit dem Browser.

Anmelden

Man klickt oben auf den Link "Sign Up" und erstellt einen neuen Zugang. Jeder neu angemeldete Benutzer erhält automatisch ein Projekt home:BENUTZERNAME.

Kooperation

Möchte man ein bestehendes Paket aktualisieren oder Fehler ausbessern, wählt man "Branch Package". Es wird daraufhin standardmäßig eine Kopie unter home:BENUTZERNAME:branches:PROJEKTNAME/Paket abgelegt (Beispiel: http://download.opensuse.org/repositories/home:/BENUTZERNAME:/PROJEKTNAME/). Diese kann nun mit Klick auf die jeweiligen Steuerungsdateien (.spec für RPM oder .dsc für DEB) im Browser editieren. Jede Speicherung legt eine neue Revision an und führt dazu, dass das Paket umgehend neu gebaut wird. Die Änderungen lassen sich über einen Linksklick linke Maustaste auf "Show Diff" überprüfen. Ist man zufrieden, kann man das Paket an das Ursprungspaket mit den Änderungen zurückschicken: "Submit Package". Bitte nicht vergessen, im jeweiligen Änderungsprotokoll (.changes für RPM oder debian.changelog für DEB) die Änderung zu dokumentieren.

Konfiguration

Unter "Repositories" kann man auswählen, für welche Distribution man einen Neubau wünscht. Gerade am Anfang, wenn der Paketbau noch häufig fehlschlägt, bietet es sich an, lediglich ein Repository zu aktivieren, um Ressourcen zu sparen oder mit dem Kommandozeilenprogramm osc schnell lokal zu bauen. Für Ubuntu-Pakete wählt man "Add Repository" und klickt die gewünschte Ubuntu-Version an. Diese wird als xUbuntu_VERSIONSNUMMER angezeigt.

Auslieferung

Hat man das Paket getestet und für gut befunden, kann man es auch über die vom Open Build Service generierten Paketquellen (Repositories) ausliefern. Unter "Repositories" aktiviert man öffentlichen Lesezugriff ("Publishing"). Benutzer kann man dann auf

  • http://software.opensuse.org/package/PAKETNAME

verweisen, wobei PAKETNAME entsprechend zu ersetzen ist (siehe auch den Abschnitt als Paketquelle einrichten).

Kommandozeilenclient

Das Programm osc richtet sich an fortgeschrittene Benutzer. Es ähnelt von der Syntax her Subversion, ist jedoch eine vollständige Eigenentwicklung, die speziell an die Bedürfnisse des Paketbaus angepasst ist. Im Gegensatz zu dput kann es nicht nur dazu verwendet werden, neue Quellpakete hochzuladen, sondern es ist auch möglich, den Paketbau lokal in einer abgeschotteten Umgebung zu prüfen.

Installation

Folgendes Paket muss installiert [2] werden:

  • osc (universe)

Paketliste zum Kopieren:

sudo apt-get install osc 

Oder mit apturl installieren, Link: apt://osc

Benutzung

Zunächst öffnet man ein Terminal [3] und navigiert zu dem Ordner, in dem man eine lokale Revision abspeichern möchte. Mit

osc co home:BENUTZERNAME:branches:PROJEKTNAME PAKETNAME 

lädt man den im Webinterface angelegten Branch herunter (checkout, kurz co), wobei BENUTZERNAME, PROJEKTNAME und PAKETNAME entsprechend zu ersetzen sind.

Im Weiteren führt man seine Änderungen durch [4]. Mittels

osc addremove 

werden neu erstellte Dateien im Ordner dem Versionsverwaltungsystem hinzugefügt und alte entfernt.

Möchte man den Paketbau lokal testen, gibt man für Ubuntu 13.10 (32-bit):

osc build xUbuntu_13.10 i586 

oder entsprechend eine andere Ubuntu-Versionsnummer ein. Für 64-bit-Pakete benutzt man x86_64. Ist man zufrieden, kann man mit

osc ci 

alle Änderungen hochladen.

Als Paketquelle einrichten

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.

Möchte man als Ubuntu-Nutzer Pakete bzw. Programme aus einer vom Open Build Service generierten Paketquelle [5] installieren, braucht man zwei Befehle, die hier schematisch dargestellt werden:

  • Einbinden der Paketquelle:

    sudo add-apt-repository 'deb http://download.opensuse.org/repositories/home:/BENUTZERNAME:/PROJEKTNAME/UBUNTUVERSION/ ./'  

    Die UBUNTUVERSION ist entsprechend der Versionsnummer (z.B. 12.04) als xUbuntu_VERSION anzugeben. Zu beachten ist, dass xUbuntu hier nicht für Xubuntu steht, sondern allgemein für alle Ubuntu-Varianten sowie für inoffizielle Ubuntu-Distributionen, die auf der entsprechenden Ubuntu-Version basieren.

  • Authentifizieren der Paketquelle:

    wget -q http://download.opensuse.org/repositories/home:/BENUTZERNAME:/PROJEKTNAME/UBUNTUVERSION/Release.key -O- | sudo apt-key add - 

Nach dem obligatorischen Aktualisieren der Paketquellen mit

sudo apt-get update 

erfolgt die Installation entweder über eine grafische Paketverwaltung wie Ubuntu Software oder via Kommandozeile. Beispiele:

sudo apt-get install PAKETNAME 

bzw. beim Einsatz von aptitude:

sudo aptitude install PAKETNAME 

Fremdpaket

Verwendet man die Downloadseite http://software.opensuse.org/package/PAKETNAME, kann man ein Fremdpaket herunterladen und manuell installieren, ohne eine Paketquelle einzurichten.

Problembehebung

Paketquellen

Man sollte beachten, das die Ubuntu-Paketquellen multiverse und universe im OBS nicht zur Verfügung stehen. Benötigt man zum Bau Abhängigkeiten daraus, muss man diese zunächst selber bauen. Leider dürfen aus Lizenzgründen nicht alle Pakete aus universe (und vermutlich noch mehr aus multiverse) auf den Servern gebaut werden.

Diese Revision wurde am 9. Februar 2020 19:22 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung, Ubuntu, Paketbau, Community