SDB:YaST Installationsquellen erzeugen

aus openSUSE, der freien Wissensdatenbank


Version: 9.0 - 10.0

Inhaltsverzeichnis

Anliegen

Sie möchten eine Installationsquelle für eine SUSE LINUX Version <= 10.0 anbieten.

(Fü SUSE Linux bzw. openSUSE Versionen ab 10.1 lesen Sie bitte hier weiter.)

Vorgehen

Es gibt zwei Arten von Installationsquellen für YaST. Plain Cache und "echte" YaST Quellen.

Plain Cache Quellen

Eine Plain Cache Quelle ist ein Verzeichnis mit RPM Dateien. Damit YaST ein Verzeichnis als Plain Cache Quelle anerkennt, muss es eine Datei (IS_PLAINcache) erstellt werden, die die RPM Header-Informationen der vorhandenen RPM Pakete enthällt. YaST benötigt die Paketdaten (Name, Version, Abhängigkeiten, etc.) aus dem .rpm File, damit nicht jedesmal das Paket selbst gelesen werden muss. Bei grösseren Paketen würde das zu äusserst langen Übertragungszeiten führen, auch wenn man das Paket gar nicht installieren will. Daher werden nur die notwendigen Paketdaten aus den Paketen gelesen und in eine Datei gespeichert.

Diese Datei können Sie mittels eines Programms erstellen. Dies ist ab SUSE LINUX 9.0 im Paket yast2-packagemanager enthalten und heißt genIS_PLAINcache.

Vorteile
  • Einfach zu generieren
Nachteile
  • Kann nicht mit Source-RPMs umgehen (src.rpm)
  • Kann nicht mit verschiedenen Architekturen umgehen (i586/i686/noarch/ppc/etc.)
  • Keine Beschreibung für die Installationsquelle in YaST
  • genIS_PLAINcache ist ein Binary (kein Script) und läuft nur auf SUSE Systemen
Beispiel

Sie haben ein Verzeichnis mit einigen binary RPM Dateien auf ihrem Server, dass Sie über http/ftp als YaST Installationsquelle anbieten möchten.

/srv/www/htdocs/suse/RPMS/
                          `- software1-1.0-1.i686.rpm
                          `- software2-1.0-1.i686.rpm
                          `- software3-1.0-1.i686.rpm
                          `- test/
                                  `- test1-0.99-1.i686.rpm
                                  `- test2-0.99-1.i686.rpm
                                  `- test3-0.99-1.i686.rpm

Um eine Plain Cache Quelle zu erzeugen, führen Sie bitte folgende Befehle aus:

cd /srv/www/htdocs/suse/RPMS/
genIS_PLAINcache -f -r .
gzip IS_PLAINcache

Danach können Sie in YaST -> Installationsquelle wechseln das Verzeichnis als Installationsquelle hinzufügen. Beachten Sie bitte die oben genannten Einschränkungen.

YaST Quellen

Eine "echte"YaST Quelle besteht aus mehreren Dateien und Verzeichnissen, die die Installationsquelle und deren Inhalt beschreiben: den binary RPM Dateien für verschiedene Architekturen und den dazugehörigen Source RPM Dateien. Einige der beschreibenden Dateien lassen sich mittels eines Scripts erzeugen. Dies ist ab SUSE LINUX 9.0 im Paket autoyast2-utils enthalten und heißt create_package_descr.

Vorteile
  • Kann mit Source-RPMs umgehen
  • Kann mit verschiedenen Architekturen umgehen
  • Die Beschreibung der Installationsquelle wird in YaST angezeigt
Nachteile
  • Nicht so einfach zu erzeugen

Die Beschreibung der Installationsquelle ist in mehrere Dateien gesplittet.

  • media.1/
       `- media
  • content
  • directory.yast
  • setup/descr/
           `- packages
           `- packages.DU
           `- packages.en
media.1/media

Die Datei media.1/media enthält eine Bezeichnung des Mediums bestehend aus folgenden Bestandteilen:

Datei: media.1/media
Inhalt: <Hersteller>
<Datum der Herstellung (YYYYMMDDHHMMSS)>
<Anzahl der Medien>

Nun zum Beispiel:

Packman
20040027150052
1

Tipp: Den Datum-String können Sie mittels des Programms date erzeugen. date +%Y%m%d%H%M%S

content

Die Datei content enthält eine Beschreibung des Inhalts des Mediums, bestehend aus folgenden Bestandteilen:

Key Inhalt
PRODUCT Der Name des Produkts
VERSION Die Version des Produkts
VENDOR Hersteller
LABEL Bezeichnung der Quelle, die in YaST auftauchen soll
ARCH.<base> Erlaubte Architekturen für die Basis-Architektur
DEFAULTBASE Default Basis-Architektur, falls diese nicht von YaST ermittelt werden konnte
DESCRDIR Das Verzeichnis, in welchem die Paketbeschreibungen liegen
DATADIR Das Verzeichnis, in welchem die Pakete liegen

Beispiel:

PRODUCT Packman
VERSION 9.0-0
LABEL Packman (SUSE LINUX 9.0)
VENDOR Packman Packager Team
ARCH.i686 i686 i586 i486 i386 noarch
ARCH.i586 i586 i486 i386 noarch
DEFAULTBASE i586
DESCRDIR setup/descr
DATADIR RPMS
directory.yast

Diese Datei benutzt YaST, wenn die Installationsquelle über ein Protokoll angesprochen wird, das keine directory listings unterstützt (zum Beispiel http). Sie können diese Datei ganz einfach mit dem Programm ls erstellen:

ls -A1 > directory.yast

Beispiel:

RPMS
content
directory.yast
media.1
setup
setup/descr/*

Diese Dateien können Sie mit dem Script create_package_descr erzeugen. Sie enthalten die Abhängigkeiten, die Größe und die Paketbeschreibungen aller Pakete in der Installationsquelle.

Beispiel

Sie haben ein Verzeichnis auf Ihrem FTP Server, das Binary und Source RPM Pakete für SUSE LINUX enthält. Die meisten Binary RPM Pakete sind für zwei Architekturen vorhanden (i586/i686), zusätzlich haben Sie noch einige Scripte in RPM Pakete gepackt, die Architektur-unabhängig sind (noarch). Sie wollen dieses Verzeichnis als YaST Installationsquelle für SUSE LINUX 9.0 anbieten.

/srv/ftp/pub/linux/suse/9.0/RPMS/
                                `- i586/
                                |      `- software1-1.0-1.i586.rpm
                                |      `- software2-1.0-1.i586.rpm
                                `- i686/
                                |      `- software1-1.0-1.i686.rpm
                                |      `- software2-1.0-1.i686.rpm
                                `- noarch/
                                |        `- script1-1.0-1.noarch.rpm
                                |        `- script2-1.0-1.noarch.rpm
                                `- src/
                                      `- software1-1.0-1.src.rpm
                                      `- software2-1.0-1.src.rpm
                                      `- script1-1.0-1.src.rpm
                                      `- script2-1.0-1.src.rpm

Um eine "echte"YaST Quelle aus diesem Verzeichnis zu erstellen, geben Sie folgende Aufrufe ein:

cd /srv/ftp/pub/linux/suse/9.0/
mkdir media.1
touch media.1/media
touch content
ls -A1 > directory.yast
create_package_descr -d RPMS/

Weiterführende Dokumentation

Weiterführende Dokumentation zu YaST Installationsquellen finden Sie im Paket yast2-packagemanager-devel