Univention Corporate Server (UCS) » Softwarepflege und Paketverwaltung

ID #1091

Wie können eigene Pakete für UCS bereitgestellt werden?

Problem:

Wie können eigene Pakete für UCS bereitgestellt werden?

Lösung:

Ab UCS 2.2 besteht die Möglichkeit Release-Updates auf einem UCS-System direkt aus dem Online Repository zu installieren. Das Standard Online Repository von Univention ist unter der Adresse http://apt.univention.de/ zu finden. Weiter kann auch ein lokales Repository auf dem UCS-System erstellt werden, welches mit dem Online Repository synchronisiert wird. Weitere Hinweise dazu sind im UCS Handbuch, Kapitel Softwarepflege zu finden: http://www.univention.de/dokumentation.html


Die Paketquellen werden dabei automatisch generiert und können mit Hilfe von UCR-Variablen (Univention Config Registry) gesteuert werden. Bspw. kann das unmaintained-Repository wie folgt eingebunden werden:

root@qamaster:~# ucr set repository/online/unmaintained="yes"
Setting repository/online/unmaintained
File: /etc/apt/sources.list.d/15_ucs-online-version.list
File: /etc/apt/sources.list.d/18_ucs-online-security.list
File: /etc/apt/sources.list.d/20_ucs-online-component.list
root@qamaster:~#


In der Auflistung ist zu erkennen, dass es neben den normalen UCS Versionen (/etc/apt/sources.list.d/15_ucs-online-version.list) auch noch Security Updates (/etc/apt/sources.list.d/18_ucs-online-security.list) und Komponenten (/etc/apt/sources.list.d/20_ucs-online-component.list) gibt. Die UCS-Versionen und Security Updates werden dabei immer von einem Server bezogen, dieser wird mit der UCR-Variable repository/online/server definiert. Die Komponenten müssen nicht im Standard Online Repository liegen, sondern können über unterschiedliche Server verteilt werden.

Die UCR-Variablen für Komponenten sind im Softwarepflege Kapitel ("Hinzufügen von Komponenten-Repositories") beschrieben. Im folgenden sind zwei Beispiele für das Einbinden von Komponenten:

Beispiel 1:

Die UCR-Variablen:

repository/online/component/ox4ucs/server=oxae-update.open-xchange.com
repository/online/component/ox4ucs/version=2.1
repository/online/component/ox4ucs=enabled


Anschließend sieht der Eintrag in der Datei 20_ucs-online-component.list so aus:
deb http://oxae-update.open-xchange.com/2.1/maintained/component/ox4ucs/ ./

 

Beispiel 2:

Die UCR-Variablen:

repository/online/component/scalix/server=apt.univention.de
repository/online/component/scalix=enabled


Und die Zeilen in der Datei 20_ucs-online-component.list:
deb http://apt.univention.de/2.2/maintained/component scalix/all/
deb http://apt.univention.de/2.2/maintained/component scalix/extern/
deb http://apt.univention.de/2.2/maintained/component scalix/i386/


Beim Generieren der sources.list wird geprüft, ob die Verzeichnisse auf dem Server existieren und ob die Packages-Dateien vorhanden sind. Der Aufbau dabei ist:

<Prefix>/<UCS Versionsnummer>/<maintained|unmaintained>/component/<Name der Komponente>/

Im ersten Beispiel liegt direkt darunter die Packages-Datei, im zweiten Beispiel sind Unterverzeichnisse vorhanden, in denen die Packages-Dateien liegen. Mögliche Unterverzeichnisse sind:

  • ein Verzeichnis für die Architektur (i386 oder amd64)
  • ein Verzeichnis für Plattformunabhängige Pakete (all)
  • ein Verzeichnis für externe Pakete (extern)
  • ein Verzeichnis für die Source-Pakete (source)

Die Angabe des Prefix ist optional und kann über die UCR-Variable repository/online/component/<Name der Komponente>/prefix gesetzt werden.

Standardmäßig wird bei der Einbindung der Komponente lediglich der maintained Bereich eingebunden. Über die UCR-Variable repository/online/component/<Name der Komponente>/parts kann dieses Verhalten gesteuert werden. Durch das Setzen der Variable auf unmaintained wird lediglich der Bereich unmaintained eingebunden, wenn hingegen beide Bereiche eingebunden werden sollen, so kann die UCR-Variable auf maintained,unmaintained gesetzt werden.

Über die UCR-Variable repository/online/component/<Name der Komponente>/version können die einzubindenden Versionen angegeben werden. Dabei sind folgende Varianten möglich:

  •  leer bzw. nicht gesetzt: es werden automatisch alle Versionen der selben Major-Version eingebunden. Ist z.B. aktuell UCS-2.3 installiert, so werden die Repositories für die Komponente in den Versionen 2.0, 2.1, 2.2 und 2.3 eingebunden, sofern diese existieren.
  • current: Durch das Schlüsselwort "current" werden ebenfalls alle Versionen der selben Major-Version eingebunden. Zusätzlich wird aber ein Minor- oder Major-Upgrade des installierten UCS-Systems solange verhindert, bis auch die so markierte Komponente für die neue Version verfügbar ist; Patchlevel- oder Security-Updates sind davon nicht betroffen. Ist z.B. aktuell UCS-2.3 installiert, UCS-2.4 oder UCS-3.0 aber bereits verfügbar, so erfolgt dennoch solang kein Upgrade auf die neue Version, bis auch die Komponente für die Version 2.4 bzw. 3.0 verfügbar ist.
  • major.minor: Durch die Angabe einer expliziten Version wird die Komponente nur in dieser Version eingebunden. Upgrades von UCS werden dadurch nicht blockiert. Mehrere Versionen können durch Komma getrennt angegeben werden, z.B. 2.0,2.3.

Anstatt die UCR-Variablen per Kommandozeile zu setzen, kann das UMC-Modul Online Update verwendet werden.

Weitere Informationen sind im aktuellen aktuellen Handbuch Kapitel 10 (Softwarepflege) und Kapitel 5.3.12 (UMC Modul - Online Update) zu finden: http://www.univention.de/dokumentation.html

Die Ankündigung zum Online Repository: http://forum.univention.de/viewtopic.php?f=26&t=461

Tags: component, Erweiterungen, Komponenten, Online Repository, Repository

Verwandte Artikel:

Letzte Änderung der FAQ: 2011-01-27 15:21
Autor: Stefan Gohmann
Revision: 1.2

Digg it! Share on Facebook FAQ ausdrucken FAQ weiterempfehlen Als PDF-Datei anzeigen
Übersetzungsvorschlag für Übersetzungsvorschlag für
Bewertung der Nützlichkeit dieser FAQ:

Durchschnittliche Bewertung: 0 (0 Abstimmungen)

vollkommen überflüssig 1 2 3 4 5 sehr wertvoll

Kommentieren nicht möglich