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.

