Creating YaST Installation Sources
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. |
Sommaire
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.