Installationsquellen erstellen
aus openSUSE, der freien Wissensdatenbank
Inhaltsverzeichnis |
Installationsquelle für YaST erstellen
Es stehen drei Arten möglicher Installationsquellen für YaST zur Verfügung: plain cache, yum, und "echte" YaST-Quellen.
Plain Cache Quellen
Eine Plain Cache Quelle ist einfach ein Verzeichnis, welches RPM-Dateien enthält. Damit YaST ein Verzeichnis als Plain Cache Quelle anerkennt, müssen Sie darin eine Datei namens IS_PLAINcache erstellen, welche die Metadaten der verfügbaren RPM-Pakete enthält. YaST benötigt die Paketdaten (Name, Version, Abhängigkeiten, usw.) der .rpm-Dateien um zu verhindern, dass sie nicht immer aufs Neue komplett eingelesen werden, was zu langen Übertragungszeiten führen würde, selbst wenn man die Pakete nicht installieren will. Deshalb werden die benötigten Paketinformationen ausgelesen und in einer Datei gespeichert.
Diese Datei kann mit dem Werkzeug genIS_PLAINcache angelegt werden, welches Teil des Paketes yast2-packagemanager ist.
Vorteile
- Sehr einfach zu erstellen.
Nachteile
- Quellcode-RPMs (src.rpm) werden nicht unterstützt.
- Mehrere Architekturen (i586, i686, noarch, ppc, usw.) gleichzeittg werden nicht unterstützt.
- Keine Beschreibung der Installationsquelle in YaST.
- genIS_PLAINcache ist eine Binärdatei (kein Skript) welche nur auf SUSE Systemen funktioniert.
Beispiel
Auf ihrem Server haben Sie ein Verzeichnis mit einer Reihe von binären RPM-Dateien welche Sie über HTTP oder FTP als YaST-Installationsquelle verfügbar machen wollen.
/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
Rufen Sie folgende Befehle auf, um eine Plain Cache Quelle zu erstellen:
cd /srv/www/htdocs/suse/RPMS/ genIS_PLAINcache -f -r . gzip genIS_PLAINcache
Danach können Sie das Verzeichnis als Installationsquelle in YaST -> Software -> Installationquelle wechseln einbinden. Beachten Sie dabei die oben genannten Einschränkungen.
YUM-Quellen
Eine YUM-Quelle ist ein Verzeichnis, welches RPM-Dateien oder Unterverzeichnisse mit RPM-Dateien enthält. Um YaST ein Verzeichnis als YUM-Quelle bekannt zu machen, müssen Sie eine repodata-Datei erstellen, welche die Metainformationen der verfügbaren RPM-Pakete enthält (aus den gleichen Gründen wie bei den Plain Cache Quellen).
Diese Datei kann mit dem Werkzeug createrepo erstellt werden, welches im Paket createrepo enthalten ist.
Vorteile
- Einfach zu erstellen.
- Mehrere Architekturen werden unterstützt.
Nachteile
- Quellcode-RPMs (src.rpm) werden nicht unterstützt.
Beispiel
Sie haben auf ihrem Server ein Verzeichnis mit RPM-Dateien und wollen es als YUM-Installationsquelle verfügbar machen.
/srv/www/htdocs/suse/RPMS/ `- i686/ `- software1-1.0-1.i686.rpm `- software2-1.0-1.i686.rpm `- software3-1.0-1.i686.rpm `- i586/ `- software1-1.0-1.i586.rpm `- software2-1.0-1.i586.rpm `- software3-1.0-1.i586.rpm `- test/ `- test1-0.99-1.i686.rpm `- test2-0.99-1.i686.rpm `- test3-0.99-1.i686.rpm
Rufen Sie die folgenden Befehle auf, um eine YUM-Installationsquelle zu erstellen:
cd /srv/www/htdocs/suse/ createrepo RPMS
Danach können Sie das Verzeichnis als Installationsquelle in YaST -> Software -> Installationquelle wechseln einbinden.
YaST Quellen
Eine "richtige" YaST-Quelle besteht aus verschiedenen Dateien und Verzeichnissen welche die Installationsquelle und ihren Inhalt beschreiben: binäre RPM-Dateien für verschiedene Architekturen und die dazugehörigen Quellcode-RPM-Dateien. Einige der Beschreibungsdateien können mit dem Skript create_package_descr erstellt werden, welches Bestandteil des Pakets autoyast2-utils ist.
Vorteile
- Quellcode-RPMs (src.rpm) werden unterstützt.
- Mehrere Architekturen werden unterstützt.
- Die Beschreibung der Installtionsquelle wird in YaST angezeigt.
- Mehrere Installationsquellen können in einer vorgegebenen Weise gehandhabt werden.
- Mehrsprachige Beschreibungen werden unterstützt.
- Virtuelle Bereitstellungen (virtual provides/extra provides) können benutzt werden.
Nachteile
- Nicht so einfach zu erstellen.
Beispiel
Die Beschreibung der Installationsquelle ist auf mehrere Dateien aufgeteilt:
media.1/ `- media content directory.yast setup/descr/ `- packages `- packages.DU `- packages.en
- media.1/media
Die Datei media.1/media enthälte eine Medienbeschreibung, bestehend aus den folgenden Komponenten:
Inhalt:
<Autor> <Datum der Erstellung (JJJJMMTThhmmss)> (JahrMonatTagStundeMinuteSekunde <Anzahl der Medien> (wird auf dem ersten Medium angegeben)
Beispiel:
Packman 20040127150052 1
Tip: Die Zeichenkette des Datums lässt sich mit date erstellen.
date +%Y%m%d%H%M%S
- content
Die Datei content enthält Informationen zum Medium, bestehend aus folgenden Komponenten:
Schlüssel Inhalt PRODUCT Produktname VERSION Produktversion VENDOR Produktanbieter LABEL Quellenbezeichnung welche von YaST benutzt wird ARCH.<base> Unterstützte Architekturen für die Basisarchitektur DEFAULTBASE Standardbasisarchitektur, falls diese nicht von YaST ermittelt werden kann DESCRDIR Das Verzeichnis, welches die Paketbeschreibungen enthält DATADIR Das Verzeichnis, welches die Pakete enthält
Beispiel:
PRODUCT Packman VERSION 10.0-0 VENDOR Packman Packager Team LABEL Packman (SUSE LINUX 10.0) ARCH.i686 i686 i586 i486 i386 noarch ARCH.i586 i586 i486 i386 noarch DEFAULTBASE i586 DESCRDIR setup/descr DATADIR RPMS
- directory.yast
YaST benutzt diese Datei, wenn auf eine Installationsquelle über ein Protokoll zugegriffen wird, welches keine Verzeichnislisten überträgt (so wie HTTP). Diese Datei kann ganz einfach mit ls erstellt werden:
ls -A1 > directory.yast
Beispiel:
RPMS content directory.yast media.1 setup
- setup/descr/*
Diese Dateien können mit dem Skript create_package_descr erstellt werden. Sie enthalten die Abhängigkeiten, die Größe und die Paketbeschreibungen aller in der Installtionsquelle enthaltenen Pakete.
Beispiel:
Auf ihrem FTP-Server haben Sie ein Verzeichnis, welches Binär- und Quellcode-RPM-Pakete für SUSE Linux enthält. Die meisten binären RPM-Pakete stehen für zwei Architekturen zur Verfügung (i586/i686), darüber hinaus sind einige Skripte in architekturunabhängigen RPM-Paketen (noarch) vorhanden. Sie wollen dieses Verzeichnis als eine YaST-Installationsquelle für SUSE Linux 10.0 bereitstellen.
/srv/ftp/pub/linux/suse/10.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 dieses Verzeichnis als eine "echte" YaST-Quelle bereitzustellen, rufen Sie folgende Befehle auf:
cd /srv/ftp/pub/linux/suse/10.0/ mkdir media.1 $EDITOR media.1/media $EDITOR content ls -A1 > directory.yast create_package_descr -d RPMS/
Das Skript create_package_descr befindet sich in
/opt/kde3/share/apps/krpmview/
oder kann von sf.net heruntergeladen werden.
Weitere Dokumentation
Weitere, die YaST-Installationsquellen behandelnde Dokumentation finden Sie im Paket yast2-packagemanager-devel. Zusätzliche Tools für das Erzeugen von Installationsquellen finden Sie im Paket inst-source-utils. Eine Documentation zu den einzelnen Tools finden Sie hier