Paketverwaltung/Paketdepots/YaST/content

aus openSUSE, der freien Wissensdatenbank

Inhaltsverzeichnis

Rationale

Was ist ein Produkt und was macht ein Produkt zu einem Produkt?

Die Installation von bspw. openSUSE 10.2 kann auf verschiedene Arten geschehen. Am Ende ist aber immer openSUSE 10.2 auf dem Computer installiert.

Meistens.

Abhängig vom Installationsmedium variiert der Satz an installierten Paketen. Es können aber mehr oder weniger Übersetzungen, Spiele oder was auch immer installiert sein, allein die Kernfunktionen sind immer die gleichen, wobei es auch dabei feine Unterschiede geben kann.

Wir wollen diese Unterschiede aus Gründen der Fehlerbehung und Statistik feststellen.
Wie sonst sollten wir wissen, wie wir unsere Anstrengungen konzentrieren sollen? Mehr CDs oder bessere FTP-Depots?

Produktmetadaten

Die content-Datei im Wurzelverzeichnis des Depots definiert das Produkt. Darin hat das Produkt einen Namen, eine Version, eine Ausgabe und eine Architektur; zusätzlich hat es auch noch Abhängigkeiten. Kurz gesagt ist ein Produkt aufschlüsselbar wie ein RPM-Paket.


Der Produktname

PRODUCT
ist der detaillierte Name des Produkts der exakt seine Eigenschaften beschreibt
  • Keine Leerzeichen (Alle Leerzeichen werden in Unterstriche umgewandelt)
  • Keine Version (dafür gib es VERSION)
  • Keine Architektur
  • Die gleichen Regeln die auch für die Namen von RPM-Paketen gelten
Beispiele

PRODUCT openSUSE-CD (CD-Version)
PRODUCT openSUSE-FTP (FTP-Version)
PRODUCT openSUSE-DVD9 (DVD9-Version)

Die Produktversion

VERSION
spezifiziert Version-Ausgabe
  • Muss vergleichbar sein (wie Versionsangaben bei RPMs)
  • Die Version enthält die sichtbare Nummer, die Ausgabe ist intern und beginnt mit 0 für GA und wird bei jedem Neubau erhöht.
Beispiele

VERSION 10.2-0 (GA-Version)
VERSION 10.2-1 (Neu aufgelegte Version)

Die Factory-Version

Für die Factory Distribution muss sich die Versionsnummer von veröffentlichten Produkten unterscheiden. Die gleiche Version in Factory zu haben ist für einen kurzen Zeitraum vertretbar, in dem Factory das zu veröffentlichende Produkt ist - was es aber für gewöhnlich nicht ist.

Sobald also bspw. openSUSE-10.2 abgetrennt wird und neue/aktualisierte Pakte in Factory eingepflegt werden, muss die Versionsnummer erhöht werden.

Die Factory-Version muss dann höher als 10.2 sein (die Entwicklung schreitet ja voran), aber niedriger als 10.3 ausfallen (so weit sind wir noch nicht).
Außerdem sollten Veränderungen im Factory-Zweig irgendwie erkennbar sein.

Deshalb wird Factory VERSION 10.2.1-1, wobei die Nummer der Ausgabe (beginnend mit 1) jedes mal ansteigt, wenn der Factory-Zweig zur Öffentlichkeit synchronisiert wird.

Abhängigkeiten

Bietet/Provides

Für das verwendete Beispiels - openSUSE-10.2 auf verschiedene Arten installiert - ist das resultierende System openSUSE-10.2. Diese Tatsache muss irgendwie feststellbar sein, und dass kann über Abhängigkeiten erreicht werden.

PROVIDES
Markiert zusätzlich was das Produkt bereitstellt (neben seinem eigenen Namen)
Beispiel

PROVIDES product:openSUSE = 10.2

Es muss ausdrücklich ein product:-Vorspann vorhanden sein, da die Abhängigkeiten den Paketnamensraum vorgeben!

Veraltet/Obsoletes

Da ein neues Produkt eine Ersatz für ältere Produkte ist, sollte das durch eine passende obsoletes-Abhängigkeit ausgedrückt werden.

Beispiel

OBSOLETES product:SUSE_LINUX product:openSUSE < 10.2

openSUSE-10.2 ersetzt alle Versionen von SUSE_LINUX (egal welche Version!) und alle älteren Versionen von openSUSE.