SDB:Créer des sources d'installation YaST

Aller à : navigation, rechercher


Version: 9.0 -

Besoin

Vous désirez offrir une source d'installation pour une version de SuSE Linux.

Procédure

Deux sortes de sources d'installation existent pour YaST: les sources Plain Cache et les sources "véritables" YaST.

Sources Plain Cache

Une source Plain Cache est un répertoire contenant des fichiers RPM. De manière à ce que YaST reconnaisse un répertoire donné comme source Plain Cache, un fichier nommé IS_PLAINcache doit être créé, contenant les informations d'entêtes RPM des paquets qui se trouvent dans le répertoire. YaST a besoin des données (nom, version, dépendances, etc) qui proviennent du fichier .rpm, de manière à ne pas devoir lire à chaque fois celles-ci du paquet lui-même. Dans le cas de grands paquets logiciels, les temps de transferts nécessaires seraient prohibitifs, en particulier si le paquet n'est finalement pas installé. Pour cette raison, seules les données importantes sont extraites des paquets RPM et sont stockées dans ce fichier.

Vous pouvez créer ce fichier via un programme spécifique. Ce dernier est disponible dès la version 9.0 de SuSE Linux et est contenu dans le paquet logiciel yast2-packagemanager et s'appelle genIS_PLAINcache.

Avantages
  • facile à générer
Inconvénients
  • ne gère pas les RPMs de sources (src.rpm)
  • ne peut pas gérer plusieurs architectures (i586/i686/noarch/ppc/etc)
  • pas de description des sources d'installation dans YaST
  • genIS_PLAINcache est un binaire (pas un script) et ne fonctionne que sur des systèmes SuSE
Exemple

Vous disposez d'un répertoire avec vos propres fichiers binaires RPM sur votre serveur, que vous désirez offrir comme source d'installation à YaST via http/ftp.

/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

De manière à créer une source Plain Cache, vous devez exécuter les commandes suivantes:

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

Après cela, vous pouvez ajouter ce répertoire comme source d'installation via YaST -> Modifier les sources d'installation. Considérez s'il vous plaît les limitations que nous avons évoquées ci-dessus.

Sources YaST

Une source "véritable" YaST est composée de plusieurs fichiers et répertoires qui décrivent les sources d'installations et leur contenu: les fichiers RPM binaires pour les diverses architectures et les RPM sources correspondants. Quelques uns des fichiers de description peuvent être créés à l'aide d'un script. Ce script est contenu dès SuSE Linux 9.0 dans le paquet logiciel autoyast2-utils et s'appelle create_package_descr.

Avantages
  • peut gérer les RPMs de sources
  • peut gérer plusieurs architectures
  • la description des sources d'installation est visible dans YaST
Inconvénients
  • pas facile à générer

La description des sources d'installation se trouve répartie dans plusieurs fichiers.

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

Le fichiermedia.1/media contient une description du média, suivant le modèle suivant:

Fichier: media.1/media
contenu: <Fabricant>
<Date de création (YYYYMMDDHHMMSS)>
<Nombre de media>

Par exemple:

Packman
20040027150052
1

Astuce: La chaîne de date peut être créée via le programme date: date +%Y%m%d%H%M%S

content

Le fichier content contient une description du contenu du média, suivant le modèle suivant:

Key Contenu
PRODUCT Le nom du produit
VERSION La version du produit
VENDOR Fabricant
LABEL Description de la source d'installation telle qu'elle figurera dans YaST
ARCH.<base> Architectures autorisées pour l'architecture de base
DEFAULTBASE Architecture de base par défaut, si elle n'a pas pu être communiquée par YaST
DESCRDIR Le répertoire qui contient les descriptions des paquets logiciels
DATADIR Le répertoire qui contient les paquets logiciels

Exemple:

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

Ce fichier est utilisé par YaST lorsque la source d'installation est accédée par un protocole qui ne dispose pas de la fonction de listage de répertoire (p.ex. http) Vous pouvez créer ce fichier à l'aide du programme ls, tout simplement:

ls -A1 > directory.yast

Exemple:

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

Vous pouvez créer ces fichiers à l'aide du script create_package_descr. Ils contiennent les dépendances, les tailles et les descriptions des paquets logiciels de tous les paquets se trouvant dans la source d'installation.

Exemple

Vous disposez d'un répertoire sur votre serveur FTP qui contient des paquets RPM binaires et sources pour SuSE Linux. La plupart des paquets binaires RPM sont disponibles pour deux architectures (i586/i686), de plus vous avez créés quelques paquets RPM contenant des scripts (indépendants de l'architecture: noarch). Vous désirez mettre à disposition ce répertoire comme source d'installation pour YaST (SuSE Linux 9.0).

/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

De manière à créer une source "véritable" YaST dans ce répertoire, il suffit d'appeler les commandes suivantes:

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/

Documentation additionnelle

Vous trouverez de la documentation additionnelle sur les sources d'installation de YaST dans le paquet yast2-packagemanager-devel <keyword>yast,instsrc,installation,rpm,src,source</keyword>