<html><head><META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>3. Paquets RPM</title><link href="style.css" rel="stylesheet" type="text/css"><meta content="DocBook XSL Stylesheets V1.64.1" name="generator"><link rel="home" href="index.html" title=" Guide pratique pour la gravure d'un CD RedHat "><link rel="up" href="index.html" title=" Guide pratique pour la gravure d'un CD RedHat "><link rel="previous" href="ar01s02.html" title="2. Anatomie du site FTP de Red Hat"><link rel="next" href="ar01s04.html" title="4. Obtenir votre copie locale de la distribution"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">3. Paquets RPM</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ar01s02.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ar01s04.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rpm-packages"></a>3. Paquets RPM</h2></div></div><div></div></div><p> La majeure partie de la distribution RedHat consiste en un ensemble de fichiers RPM (Redhat Package Manager). Un paquet RPM contient en général des exécutables binaires, avec les fichiers de configuration et la documentation. Le programme <a href="http://www.rpm.org" target="_top">rpm</a> est le gestionnaire de paquets de RedHat, qui peut être utilisé pour installer, rechercher, vérifier, effacer et construire les paquets au format RPM. <tt class="filename">Rpm</tt> gère convenablement une base de données de tous les paquets installés, ce qui rend l'information sur les logiciels installés disponible à tout moment. </p><p> Les fichiers binaires RPM inclus dans la distribution ont été construits sur un système utilisant lui-même la distribution. C'est important, parce que la plupart des programmes dans les paquets dépendent des bibliothèques partagées. A partir de RedHat 5.0, la nouvelle version 3 de la bibliothèque C standard de GNU (qui est compatible 64 bits) a été utilisée. Cette version de la bibliothèque est communément appelée <span class="emphasis"><em>glibc</em></span> ou, sous Linux, <span class="emphasis"><em>libc 6</em></span>. Tous les exécutables de cette distribution ont été liés avec cette bibliothèque. Si vous tentez d'installer les fichiers binaires d'une distribution différente, il y a beaucoup de chances que cela ne fonctionne pas, sauf si vous installez le paquet libc5 pour la compatibilité descendante. Il existe aussi des incompatibilités entre les nombreuses versions du RedHat Package Manager lui-même qui feront rater l'installation de quelques paquets même sur les machines où ils sont supposés fonctionner. </p><p> Les noms des paquets RPM contiennent le suffixe <span class="emphasis"><em>.arch.rpm</em></span>, où <span class="emphasis"><em>arch</em></span> est l'architecture, ayant habituellement la valeur <span class="emphasis"><em>i386</em></span> pour les binaires de la plateforme Intel. Les paquets que vous installez doivent correspondre aux versions des bibliothèques partagées disponibles sur la machine. Le programme <a href="http://www.rpm.org" target="_top">rpm</a> est habituellement assez bon pour s'assurer que c'est bien le cas. Néanmoins, il existe des moyens de le vérifier, et vous devez être sûr de savoir ce que vous faites si vous forcez l'installation de paquets de cette façon. Néanmoins, en utilisant le disque de démarrage de l'installation RedHat, il est assuré qu'un ensemble correct de paquets RPM est installé sur la machine. </p><p> Si vous découvrez un paquet RPM qui n'a pas été installé sur votre système durant le processus d'installation, ne désespérez pas. A tout moment, vous pouvez (en tant que root) installer des paquets RPM, par exemple : <pre class="screen"> # rpm --install WindowMaker-0.18-1b.i386.rpm </pre> </p><p> Vous pouvez même installer directement d'Internet, si vous connaissez l'URL du paquet RPM : <pre class="screen"> # rpm --install ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm </pre> </p><p> Si vous voulez mettre à jour un paquet RPM (ou l'installer s'il n'est pas présent sur la machine), utilisez la commande : <pre class="screen"> # rpm --update WindowMaker-0.18-1b.i386.rpm </pre> </p><p> Si vous voulez mettre à jour un paquet RPM et seulement si une version précédente est déjà installée, utilisez la commande : <pre class="screen"> # rpm --freshen WindowMaker-0.18-1b.i386.rpm </pre> </p><p> Une autre version des paquets RPM contient les sources originaux utilisés pour construire les binaires. Ces paquets ont le suffixe <span class="emphasis"><em>.src.rpm</em></span> et sont situés dans le répertoire <tt class="filename">SRPMS</tt>. Ces paquets composent les deux derniers CDs et une partie du troisième sur cinq, qui font la release 8.0 (ou la 7.3). Pour la 9, ils sont sur trois CD séparés. Pour la 6.2 (et les précédentes versions, pas trop anciennes), les choses changent un peu puisqu'il n'existe qu'un seul CD d'installation qui ne comporte pas les paquets SRPMS, que vous pouvez graver sur un disque différent si vous le voulez. </p><p> Pour obtenir plus d'informations sur le gestionnaire de paquet RedHat, je vous suggère de lire les pages man et le livre bien détaillé <a href="http://www.rpm.org/max-rpm/" target="_top">Maximum rpm</a>. </p><p> Dans la prochaine section, j'introduirai un programme C qui sera utilisé dans des scripts variés tout au long du reste de ce guide pratique. Il indique, entre deux versions du même paquet RPM, celui qui est le plus récent. Ce programme est basé sur le code utilisé dans le gestionnaire de paquets RedHat (release 4.1) et est utilisé quand l'option <span class="emphasis"><em>--freshen</em></span> est ajoutée. </p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="rpm-version-compare"></a>3.1. Comparer deux versions d'un paquet RPM</h3></div></div><div></div></div><p> Le code C inclus dans les trois fichiers <a href="outils/RedHat-CD-HOWTO/rhcd-scripts/rpmvc/Makefile" target="_top"> Makefile</a>, <a href="outils/RedHat-CD-HOWTO/rhcd-scripts/rpmvc/rvc.h" target="_top"> rvc.h</a>, <a href="outils/RedHat-CD-HOWTO/rhcd-scripts/rpmvc/rvc.c" target="_top"> rvc.c</a> a été extrait du gestionnaire de paquets RedHat et (légèrement) modifié pour combler vos besoins. Ils forment un programme C simple qui, avec deux versions A et B d'un paquet retourne 1, 0 ou -1 si A est respectivement plus récent, égal ou plus ancien que B et d'autres valeurs en cas d'erreur (vous pouvez lire les commentaires du code pour des informations plus détaillées). Pour compiler le programme, vous avez besoin du programme <tt class="filename">make</tt> et du compilateur C <tt class="filename">gcc</tt>. Copiez le fichier dans le même répertoire et envoyez la commande : <pre class="screen"> $ make </pre> </p><p> Ce programme est nécessaire pour pratiquement tous les scripts utilisés dans les sections suivantes et met en place la variable <span class="emphasis"><em>RVC</em></span> dans le fichier <a href="outils/RedHat-CD-HOWTO/rhcd-scripts/rhcd.conf" target="_top">rhcd.conf</a>. </p><p> Vous pouvez trouver une copie des sources et de la version précompilée dans l'archive <a href="rhcd-scripts.tar.gz" target="_top">rhcd-scripts.tar.gz</a> située dans le répertoire <tt class="filename">rpmvc</tt>. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> Il existait une erreur dans la façon dont ce programme était utilisé par les scripts <span class="emphasis"><em>updateDist.sh (ver. < 1.17)</em></span> et <span class="emphasis"><em>updateCD.sh (ver. < 1.12)</em></span>. Je vous suggère fortement d'éviter les versions des scripts ayant de plus petits numéros de versions que ceux rapportés ici, même si le problème n'est pas fréquent (au moins apparemment). </p></div></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ar01s02.html">Précédent</a> </td><td align="center" width="20%"><a accesskey="u" href="index.html">Niveau supérieur</a></td><td align="right" width="40%"> <a accesskey="n" href="ar01s04.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">2. Anatomie du site FTP de Red Hat </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> 4. Obtenir votre copie locale de la distribution</td></tr></table></div></body></html>