<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>3. Paquets RPM</title> <link rel="stylesheet" href="style.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.66.1"> <link rel="start" href="index.html" title=" Guide pratique de gravure d'un CD RedHat "> <link rel="up" href="index.html" title=" Guide pratique de gravure d'un CD RedHat "> <link rel="prev" 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 width="100%" summary="Navigation header"> <tr><th colspan="3" align="center">3. Paquets RPM</th></tr> <tr> <td width="20%" align="left"> <a accesskey="p" href="ar01s02.html">Précédent</a> </td> <th width="60%" align="center"> </th> <td width="20%" align="right"> <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="paquets-rpm"></a>3. Paquets RPM</h2></div></div></div> <p> La majeure partie de la distribution RedHat consiste en un ensemble de fichiers RPM ((abréviation de <span class="foreignphrase"><i class="foreignphrase">Redhat Package Manager</i></span>, c'est-à-dire « <span class="quote">gestionnaire de paquets RedHat</span> »). Un paquet RPM contient en général des exécutables binaires, accompagnés de leurs fichiers de configuration et de leur documentation. Le programme <a href="http://www.rpm.org" target="_top">rpm</a> est un puissant gestionnaire de paquets, qui peut être utilisé pour installer, interroger, vérifier, mettre à jour, effacer et construire des paquets au format RPM. <span class="application">Rpm</span> est très pratique car il gère une base de données de tous les paquets installés, ce qui permet de savoir à tout moment ce qui est installé. </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 car la plupart des programmes des paquets dépendent de bibliothèques partagées. La nouvelle version 3 de la bibliothèque C standard GNU (compatible 64 bits) a été utilisée à partir de la distribution Redhat 5.0. 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 à 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 obtenir une compatibilité descendante. Il existe aussi des incompatibilités entre les nombreuses versions du <span class="application">RedHat Package Manager</span> lui-même qui empêcheront l'installation de certains paquets même sur les machines où ils sont supposés fonctionner. </p> <p> Les noms des paquets RPM contiennent le suffixe <tt class="filename">.<i class="replaceable"><tt>archi</tt></i>.rpm</tt>, où <i class="replaceable"><tt>archi</tt></i> est l'architecture. Celle-ci a habituellement pour valeur <tt class="literal">i386</tt> pour les binaires destinés à la plate-forme Intel. Les paquets que vous installez doivent correspondre aux versions des bibliothèques partagées installées sur la machine. Le programme <a href="http://www.rpm.org" target="_top">rpm</a> est habituellement assez bon pour s'en assurer. Néanmoins, il existe des moyens de passer outre cette vérification. Si vous décidez de forcer l'installation d'un paquet de cette façon, soyez <span class="emphasis"><em>vraiment</em></span> sûr de savoir ce que vous faites. Néanmoins, l'utilisation du disque de démarrage d'installation de RedHat vous garantie qu'un ensemble correct de paquets RPM sera 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. À tout moment, vous pourrez (sous le compte root) installer des paquets RPM. Par exemple : </p> <pre class="screen"> # rpm --install WindowMaker-0.18-1b.i386.rpm </pre> <p> Vous pouvez même installer un paquet RPM directement depuis Internet, si vous connaissez son URL : </p> <pre class="screen"> # URL="ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm" # rpm --install "$URL" </pre> <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 : </p> <pre class="screen"> # rpm --update WindowMaker-0.18-1b.i386.rpm </pre> <p> Si vous voulez mettre à jour un paquet RPM dont une version précédente est déjà installée, utilisez la commande : </p> <pre class="screen"> # rpm --freshen WindowMaker-0.18-1b.i386.rpm </pre> <p> Il existe un autre type de paquets RPM qui contient les sources originales qui ont servi à construire les binaires. Ces paquets ont le suffixe <tt class="filename">.src.rpm</tt> et sont situés dans le répertoire <tt class="filename">SRPMS</tt>. La moitié du troisième CD et les deux derniers des cinq CD de la distribution Redhat 8.0 (ou la 7.3) contiennent des paquets source. 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 de manuel et le très complet <a href="http://www.rpm.org/max-rpm/" target="_top">Maximum rpm</a>. </p> <p> Dans la prochaine section, je présenterai un programme C qui sera utilisé dans divers scripts 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 (version 4.1) et est utilisé quand l'option <tt class="option">--freshen</tt> est ajoutée. </p> <div class="sect2" lang="fr"> <div class="titlepage"><div><div><h3 class="title"> <a name="comparer-versions-rpm"></a>3.1. Comparer deux versions d'un paquet RPM</h3></div></div></div> <p> Le code C des 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 code du gestionnaire de paquets RedHat et (légèrement) modifié pour répondre à nos 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 plus d'informations). Pour compiler le programme, vous aurez besoin du programme <tt class="filename">make</tt> et du compilateur C <tt class="filename">gcc</tt>. Copiez les fichiers dans le même répertoire et lancez la commande : </p> <pre class="screen"> $ make </pre> <p> Ce programme est nécessaire à pratiquement tous les scripts utilisés dans les sections suivantes. Pour que les scripts puissent le retrouver, vous devez définir la variable <tt class="literal">RVC</tt> dans le fichier <a href="outils/RedHat-CD-HOWTO/rhcd-scripts/rhcd.conf" target="_top">rhcd.conf</a>. </p> <p> Vous trouverez une copie des sources et de la version précompilée dans l'archive <a href="outils/RedHat-CD-HOWTO/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;"><table border="0" summary="Note"> <tr> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <th align="left">Note</th> </tr> <tr><td colspan="2" align="left" valign="top"><p> Ce programme était utilisé de façon incorrecte 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 antérieures de ces scripts antérieures, même si ce problème n'est pas fréquent (du moins en apparence). </p></td></tr> </table></div> </div> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"> <a accesskey="p" href="ar01s02.html">Précédent</a> </td> <td width="20%" align="center"><a accesskey="u" href="index.html">Niveau supérieur</a></td> <td width="40%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a> </td> </tr> <tr> <td width="40%" align="left" valign="top">2. Anatomie du site FTP de Red Hat </td> <td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td> <td width="40%" align="right" valign="top"> 4. Obtenir votre copie locale de la distribution</td> </tr> </table> </div> </body> </html>