Creating YaST Installation Sources

Aller à : navigation, rechercher


Acroread.png Cet article est à relire !

Cette page demande à être relue pour correction. Si vous pouvez y participer, merci de le faire en accord avec le Guide stylistique openSUSE.
Si vous cherchez quelque chose à faire, regardez les autres Pages à relire.

Créer des sources d'installation YaST

Il y a trois types de sources d'installation pour YaST: cache simple, yum, et les vraies sources YaST.

Cache simple

Un cache simple est un simple répertoire contenant des fichiers RPM. Pour que YaST reconnaisse un répertoire comme un cache simple, vous devez créer un fichier (IS_PLAINcache) contenant tous les entêtes d'information RPM des paquetages disponibles. YaST a besoin des données du paquetage (nom, version, dépendances, etc ...) afin d'éviter de lire le fichier rpm. Pour de larges paquetages, cela pourrait se traduire par des temps de tranfert inutiles, même si vous ne souhaitez pas installer le paquetage. D'où l'utilité de ce fichier.

Ce fichier peut être créé avec l'utilitaire genIS_PLAINcache qui est inclu dans le paquetage yast2-packagemanager.

Avantages

  • Facile à créer

Désavantages

  • Les RPMs de source(src.rpm) ne sont pas supportés.
  • Pas de support d'architectures multiples (i586, i686, noarch, ppc, etc.)
  • Pas de description des sources d'installation dans YaST
  • genIS_PLAINcache est un binaire (pas un script) qui ne fonctionne que sur SUSE.

Exemple

A partir d'un répertoire avec un certain nombre de fichiers RPM sur votre serveur à rendre disponible comme source d'installation pour YaST via HTTP ou 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

Exécutez les commandes suivantes afin de générer des sources "Cache simple":

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

Ensuite, vous pourrez utiliser le répertoire comme source d'installation dans YaST - -> Change Source of Installation.

Dépôt repomd/rpm md/YUM

Un dépôt repomd (aussi appelé rpm md ou yum ) est un répertoire contenant des fichiers RPM ou des sous-répertoires contenant des fichiers RPM. Afin que YaST reconnaisse un répertoire comme un dépôt repomd, vous devrez créer un répertoire repodata qui contient les informations des entêtes RPM des paquetages disponibles.

Ce fichier peut être créé avec l'utilitaire createrepo qui est inclus dans le paquetage createrepo.

Avantages

  • Facile à créer
  • Les architectures multiples sont supportées.

Désavantages

  • Les RPM sources (src.rpm) ne sont pas supportés.

Example

Vous avez un répertoire avec des fichiers RPM sur votre serveur et vous souhaitez les rendre disponibles comme un dépôt d'installation YUM.

   /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

Exécutez la commande suivante afin de génére un dépôt YUM.

   # createrepo /srv/www/htdocs/suse/RPMS

Dépôt YaST

Un "vrai" dépôt YaST (aussi appelé source susetags) consiste en plusieurs fichiers et répertoires qui décrivent les sources d'installation et son contenu. Certains des fichiers descriptifs peuvent être créés avec le script create_package_descr qui est dans le paquetage autoyast2-utils.

Avantages

  • Les RPM sources sont supportés
  • Les architectures Multiples sont supportés
  • Fichiers plus petits que les fichiers XML.
  • Le dépôt peut être séparé en plusieurs media (CDs)
  • La description des sources peut être affichées dans YaST
  • Supporte les descriptions en plusieurs langues.

Désavantages

  • Assez délicat à créer

Exemple

La description du dépôt d'installation est faîte par plusieurs fichiers:

   media.1/
          `- media
   content
   content.asc # optional
   content.key # optional
   directory.yast
   setup/descr/
              `- packages
              `- packages.DU
              `- packages.en
       
  • media.1/media

Le fichier media.1/media contient une description du medium qui consiste des éléments suivants:

Contenu:

   <Auteur>
   <Date de création (YYYYMMDDhhmmss)>
   <Nombre de media>

Exemple:

   Packman
   20040127150052
   1

La date sert simplement à utilise les media appartenant au même ensemble. En fait, on pourrait mettre une autre chaîne que la date.

  • content

Le fichier content contient une description du medium contains a medium content description consisting of the following components:

   Clé 	Valeur
   PRODUCT 	Nom du produit
   VERSION 	Version de produit
   VENDOR 	Éditeur du produit
   LABEL 	Nom à utiliser dans YaST
   ARCH.<base> 	Architectures supportées pour l'architecture de base
   DEFAULTBASE 	Architecture à utiliser si l'architecture ne peut pas être déterminée par YaST.
   DESCRDIR 	Le répertoire contenant les descriptions du paquetage
   DATADIR 	Le répertoire contenant les paquetages

Exemple:

   PRODUCT Packman
   VERSION 10.0-0
   LABEL Packman (SUSE LINUX 10.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

A partir de SUSE Linux 10.1, les sources sont sécurisées par des signatures cryptograpgiques. Une signature détachée (i.e. une signature qui est un fichier séparé) est utilisée. Pour vos propres sources d'installation, ceci est optionnel mais fortement recommandé. Consultez Confiance dans les sources d'installation pour plus d'informations.

   content.asc

contient la signature.

   content.key

contient la clé GPG publique de la paire qui a été utilisée pour signer le fichier content.asc. Cela rend plus facile pour l'usager de l'importer dans le "porte-clés"

Le fichier contient deux balises optionnelles sont autorisées: META et KEY. Si elles sont présentes, vous devez les utiliser comme suit:

  • Pour chaque fichier dans le répertoire DESCRDIR (e.g. setup/descr) il doit y avoir une entrée META
  • Pour chaque clé GPG utilisé pour signer des paquetages RPM et qui doit être ajoutée au "porte-clés", il doit y avoir une entrée KEY. Les clés doivent elles-même être placées dans le même répertoire que le fichier content.

Exemple:

   META SHA1 b5e293f8df00bfe45d3ed4521af2d9befe48656f  Basis-Devel-10.1-42.noarch.sel
   META SHA1 4bbb4a037421bbb5b4d9df7ecaa0e48e7f0edf67  packages
   KEY SHA1 a108c6aab19fe604fa98ef299cdce6e6ba275f09  gpg-pubkey-0dfb3188-41ed929b.asc
  • directory.yast

YaST utilise ce fichier si le type de source d'installation ne supporte pas l'énumération du contenu de répertoire comme le protocole HTTP. Ce fichier peut être créé très simplement à l'aide de la commande

   ls -A1 > directory.yast

Exemple:

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

Ces fichiers peuvent être créés par le script create_package_descr. Ils contiennent les dépendances, la taille et la description de tous les paquetages du dépôt.

Exemple:

Votre serveur FTP a un répertoire contenant les RPM binaires et sources. La plupart des paquetages sont disponibles pour 2 plateformes (i586/i686). De plus, certains scripts sont distribués dans paquetages RPM indépendants de l'architecture (noarch). Vous souhaitez publier ce répertoire comme source d'installation YaST pour SUSE Linux 10.0.

   /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

Pour générer un "vrai" dépôt YaST à partir de ce répertoire, exécuter les commandes suivantes

   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/

Le script create_package_descr est situé dans /opt/kde3/share/apps/krpmview/ ou peut être téléchargé depuis from sf.net.

Le script peut être étendu pour optionnellement générer les signatures cryptographiques et les sommes de contrôle, afin qu'il soit commode de créer un dépôt sécurisé vous même.

Pour plus d'information

Consulter la documentation disponible dans le paquetage yast2-packagemanager-devel.