YaST2 Installationsquelle selbst erzeugen

(894 Worte insgesamt im Text)
(11169 mal aufgerufen)  Druckerfreundliche Ansicht [1]

Zuletzt geändert: 19.04.2006
Um eigene Pakete (oder eine Zusammenstellung von Paketen) in YaST2 als Installationsquelle einzubinden, gibt es zwei Möglichkeiten:
  1. Plain Cache [2] - hier handelt es sich um ein "einfaches" Verzeichnis mit RPMs. Allerdings ist auch hier noch etwas zu beachten.
  2. Real YaST2 Quelle [3] - hier sind spezielle Verzeichnisstrukturen und ein paar weitere Dateien notwendig

Für das erste Verfahren benötigt man das RPM yast2-packagemanager, während für das zweite Verfahren eine Datei aus dem RPM autoyast2-utils zum Einsatz kommt.

Wenn man eigene RPMs als zusätzliche Installationsquelle während der Installation [4] hinzufügen möchte, gibt es "Hilfsskripte" auf der Webseite von Uwe Gansert [5], die viele Arbeit abnehmen. Diese Skripte sind auch im Paket autoyast2-utils enthalten.

Plain Cache

Vorteile:

Nachteile:

Um ein Verzeichnis, welches ein paar RPMs enthält als Installationsquelle für YaST2 angeben zu können, muss sich in diesem Verzeichnis eine Datei namens IS_PLAINcache befinden. In dieser Datei müssen sich alle Header-Daten der im Verzeichnis enthaltenen RPMs befinden (die Daten, die Sie auch mit einem "rpm -qpi *.rpm" bekommen würden).

Hintergrund: Um Informationen über die im Verzeichnis enthaltenen RPMs im Paketmanager angeben zu können und Paketabhängigkeiten auflösen zu können etc., müßte YaST2 ansonsten sämtliche Dateien herunterladen bzw. die Header dieser Dateien extrahieren. Das kann - besonders bei größeren Paketen und vielen RPMs im Verzeichnis - lange dauern und müßte bei jedem öffnen der Quelle neu geschehen. Um das zu vermeiden, kommen also alle Header einfach in die Datei IS_PLAINcache.

Sie müssen nun aber nicht alles manuell machen - wer will das schon. Dafür gibt es das Binary genIS_PLAINcache, welches Sie im RPM-Paket yast2-packagemanager finden (sollte normalerweise schon installiert sein).

Beispiel für Plain Cache

Sie haben ein Verzeichnis /srv/www/htdocs/suse/RPMS/ mit RPMs, welches Sie als Quellverzeichnis für YaST2 zugänglich machen wollen. In diesem Verzeichnis befinden sich die folgenden Dateien:

In einem Unterverzeichnis /srv/www/htdocs/suse/RPMS/test/ befinden sich ebenfalls ein paar Dateien:

Erzeugen Sie jetzt mit den folgenden Befehlen ein Quellverzeichnis für YaST2:

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

Nun können Sie das Verzeichnis als YaST2-Installationsquelle hinzufügen.


Echte YaST2-Installationsquelle

Vorteile:

Nachteile:

Die Beschreibung der Installationsquelle

Die Beschreibung, welche später auch in YaST2 angezeigt wird, ist in mehrere Dateien unterteilt, die sich noch dazu in verschiedenen Verzeichnissen befinden:

media.1/mediaDiese Datei enthält eine kurze Beschreibung der Installationsquelle. Hier steht folgender Inhalt drin:
Autor
Datum der Erzeugung: (YYYYMMDDHHMMSS läßt sich leicht mit dem Befehl date +%Y%m%d%H%M%S generieren.
Mediennummer

Beispiel:
Linux-Schulserver
20050606192242
1
contentDiese Datei enthält eine ausführlichere Beschreibung der Installationsquelle inkl. unterstützter Architekturen.
PRODUCTName des Produkts
VERSIONVersionsnummer
LABELWird in YaST2 angezeigtl
VENDORName des Anbieters
ARCH.Unterstützte Basisarchitekturen
DEFAULTBASEBasisarchitektur - nur notwendig, wenn YaST2 diese nicht selbst erkennen kann
DESCRDIRVerzeichnis mit den Beschreibungen der Pakete
DATADIRVerzeichnis mit den RPMs

Auch hier wieder ein Beispiel:
PRODUCT Linux-Schulserver
VERSION 2.0-0
LABEL Linux-Schulserver (OSS [7] 2.0)
VENDOR Linux-Schulserver Team
ARCH.i586 i586 i486 i386 noarch
DEFAULTBASE i586
DESCRDIR setup/descr
DATADIR suse
directory.yastSollte das verwendete Protokoll kein Verzeichnislisting unterstützen, holt sich YaST2 die Informationen für das Verzeichnis aus dieser Datei. Diese Datei kann recht einfach mit dem Befehl ls -A1 > directory.yast angelegt werden. Dies sollte bis auf die Verzeichnisse mit den RPMs in jedem Verzeichnis gemacht werden.
setup/descr/*Die hier benötigten Dateien können mit dem Befehl create_package_descr erzeugt werden. Sie enthalten u.a. die Paketabhängigkeiten, die Dateigröße, die Paketbeschreibung usw. aller Pakete im Installationsverzeichnis.

Um also eine echte Installationsquelle für YaST2 zu erzeugen, müssen Sie zunächst eine passende Verzeichnisstruktur haben:

/srv/ftp/pub/linux/suse/oss/
+ i586/
+ i686/
+ noarch/
+ src/

Wechseln Sie nun ins Verzeichnis /srv/ftp/pub/linux/suse/oss/ und führen Sie folgende Befehle aus:

mkdir media.1
touch media.1/media
touch content
ls -A1 > directory.yast
create_package_descr -d RPMS/

Weitere Informationen über YaST2-Installationsquellen können Sie auf Englisch im Paket yast2-packagemanager-devel finden.


Eigene RPMs als zusätzliche Installationsquelle während der Installation

Besonders für die automatische Installation von Clients oder auch während einer normalen Installation kann es hilfreich sein, wenn man gleich zusätzliche RPMs installieren kann. Bei SUSE ist das Hinzufügen von eigenen RPMs mit ein wenig Aufwand verbunden, weil die Nürnberger schon während der Installation "auf Nummer sicher gehen" und nur Pakete zulassen, die auch in der Datei setup/descr/packages stehen und signiert sind. Ergo müsste man also notfalls ein Paket mit einem eigenen GPG-Schlüssel signieren (siehe hier [8]), den public_key (gpg-pubkey) mit ins Root-Verzeichnis der Installationsquell legen (dort liegen ja schon einige, die uns bekannt vorkommen sollten), das RPM-Paket unter suse/i586/ kopieren und wie oben gezeigt [9] die packages-Datei neu zu erzeugen.

Aber es geht auch einfacher (-:

Jetzt hängt es von der jeweiligen Version ab, wie es weitergeht. Hier eine Beschreibung für die Version 10.1:

Änderungen im AutoYaST Profil

Dazu wird in der entsprechenden XML-Datei ein zusätzlicher Eintrag eingefügt:

<listentry>
nfs://install/SuSE/var/akt/updates
<product>SuSE-Linux-Updates</product>
/
</listentry>

Zusätzliche Datei add_on_products

Alternativ kann auch eine Datei add_on_products im Rootverzeichnis der Installationsquelle angelegt werden. Diese hat den Inhalt

nfs://install/SuSE/var/akt/updates



  

[ zurück zu Linux allgemein [10] | Index [11] ]

Kommentare

Einen Kommentar hinzufügen


Links
  [1] http://www.linux-schulserver.de/index.php?name=Sections&req=viewarticle&artid=37&allpages=1&theme=Printer
  [2] http://www.linux-schulserver.de/Sections-article37-p2.phtml
  [3] http://www.linux-schulserver.de/Sections-article37-p3.phtml
  [4] http://www.linux-schulserver.de/Sections-article37-p4.phtml
  [5] http://www.suse.de/~ug/
  [6] http://www.novell.com/linux/suse/
  [7] http://www.extis.de/oss
  [8] http://www.linux-schulserver.de/Sections-article32-p25.phtml
  [9] http://www.linux-schulserver.de/Sections-article37-p3.phtml
  [10] http://www.linux-schulserver.de/index.php?name=Sections&req=listarticles&secid=5
  [11] http://www.linux-schulserver.de/index.php?name=Sections