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
Keywords: yast | instsrc | quelle | installation | rpm | src | source

