« RPM » : différence entre les versions
Aucun résumé des modifications |
|||
(36 versions intermédiaires par 6 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[ | = RPM = | ||
[[Catégorie:Logiciels]] | |||
[[Catégorie:Fedora]] | |||
[[Catégorie:RHEL]] | |||
[[Catégorie:Mageia]] | |||
[[Catégorie:Mandriva]] | |||
[[Catégorie:SUSE]] | |||
[[Catégorie:Commandes Unix]] | |||
Installer des programmes sous GNU/Linux est très simple quand on utilise les bons outils... | |||
Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos | Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos paquets à ce format. | ||
Voir aussi [[YUM|Quelques subtiles options de YUM]] et les fiches pratiques concernant l'installation de logiciels sous [[Fiches:Administration-ficheinstall-Fedora|Fedora]], [[Fiches:Administration-ficheinstall-Mandriva|Mandriva]] et [[Fiches:Administration-ficheinstall-Mageia|Mageia]]. | |||
== Introduction == | == Introduction == | ||
Le format RPM (RedHat Package Manager), a été, comme son nom l'indique, créé à l'origine pour la distribution | Le format RPM (RedHat Package Manager), a été, comme son nom l'indique, créé à l'origine pour la distribution Red Hat. Depuis, de nombreuses distributions l'ont utilisé, on peut citer par exemple Mandriva (ex-Mandrake) ou SuSE. | ||
D'autres formats de paquets dans le monde Linux sont DEB (pour Debian) et TGZ (pour Slackware). '''Qu'est-ce qu'un paquet ?''' C'est un fichier (une archive, un peu comme un fichier .tar ou .zip) qui contient tous les fichiers appartenant à une application, une bibliothèque, etc. ainsi que des scripts de contrôle qui sont exécutés lors de l'installation ou de la désinstallation de l'application. Ce fichier contient également toutes les dépendances à d'autres applications, bibliothèques, etc.<br /><u>Note</u> : on parle indifféremment de paquet, package ou même paquetage pour désigner le fichier qui contient l'ensemble des fichiers d'un programme (le fichier rpm lui-même).<br /> | |||
La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui installent, mettent à jour ou suppriment des | Il existe de nombreux utilitaires graphiques tels que Kpackage, GnoRPM, Midnight Commander, etc. qui permettent d'installer et de gérer les paquets RPM. L'installation depuis la ligne de commande reste toutefois la solution la plus rapide et la plus efficace pour ce travail. | ||
La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui installent, mettent à jour ou suppriment des paquets nécessitent des droits d'administrateur (root). | |||
Nous allons voir ici deux méthodes pour gérer les paquets RPM :<br /> | Nous allons voir ici deux méthodes pour gérer les paquets RPM :<br /> | ||
* [[ | * [[Gérer les paquetages RPM#Les_commandes_rpm_usuelles|la commande rpm]], | ||
* [[ | * [[Gérer les paquetages RPM#Les_commandes_urpm.2A_de_Mandrake|les commandes urpm* de Mandriva]]. | ||
Les noms | Les noms des paquets sont très longs et donc très pénibles à orthographier correctement. Linux offre toutefois des aides à la frappe : | ||
* lorsque vous installez un RPM, ou travaillez sur un RPM non encore installé, utilisez la complétion de ligne de commande en tapant les premières lettres du nom du fichier RPM puis la touche TAB. Si la correspondance reste équivoque, Linux vous donnera les possibilités trouvées, retapera votre ligne et vous laissera ajouter quelques lettres pour lever l'indétermination. | * lorsque vous installez un RPM, ou travaillez sur un RPM non encore installé, utilisez la complétion de ligne de commande en tapant les premières lettres du nom du fichier RPM puis la touche TAB. Si la correspondance reste équivoque, Linux vous donnera les possibilités trouvées, retapera votre ligne et vous laissera ajouter quelques lettres pour lever l'indétermination. | ||
* lorsque vous travaillez sur un RPM qui est déjà installé, la commande < | * lorsque vous travaillez sur un RPM qui est déjà installé, la commande <b>rpm</b> s'adresse à la base de données des paquets installés, qui consigne les noms courts en plus des noms de fichiers complets. L'indication du numéro de version n'est donc en général pas nécessaire (sauf si le même package est installé 2 fois avec 2 versions différentes). | ||
== Les commandes RPM usuelles == | |||
== | === Pour installer un nouveau paquet : === | ||
= | <div class="code">rpm -ivh toto.rpm</div> | ||
Attention, si vous installez un paquet par cette méthode et qu'il existe déjà sur votre système dans une version inférieure, vous risquez d'avoir des problèmes pour le désinstaller (voir plus bas). Par contre, pour installer une bibliothèque simultanément en deux version différentes, utilisez cette syntaxe. | |||
Les options <b>h</b> et <b>v</b> ne sont pas obligatoires, <b> -i</b> est suffisant pour faire une installation. L'option <b> h</b> provoque l'affichage d'une barre de progression (ça fait très pro sur l'écran !) et <b>v</b> rend l'installation bavarde, ce qui fournit des messages plus explicites en cas d'erreur. L'option <b> -vh</b> peut être appliquée sur toutes les commandes rpm ci-après afin de rendre rpm plus bavard. | |||
=== Pour mettre à jour un | === Pour mettre à jour un paquet : === | ||
<code>rpm -Uvh toto.rpm</ | <div class="code">rpm -Uvh toto.rpm</div> | ||
Avec un "U" comme "Upgrade" (mise à jour en anglais). | Avec un "U" comme "Upgrade" (mise à jour en anglais). | ||
Attention, ceci ne s'applique pas pour upgrader un noyau, voir la [ | Attention, ceci ne s'applique pas pour upgrader un noyau, voir la [[Kernel-index|rubrique noyau]] à ce sujet. | ||
Enfin, pour remplacer un paquet par un paquet plus ancien ("downgrader"), la commande à utiliser est : | |||
<div class="code">rpm -Uvh --oldpaquet toto.rpm</div> | |||
=== Pour supprimer un paquet : === | |||
= | <div class="code">rpm -e toto<br /> rpm -e toto-version</div> | ||
< | Le "<b>e</b>" correspond à "erase" (effacer en anglais). <br /> La syntaxe complète (avec numéro de version) permet de distinguer deux versions d'un même paquet qui auraient été installées ensemble. | ||
=== Pour faire des requêtes sur les paquets : === | |||
Afficher la liste de tous les paquets déjà installés J'imagine que "<b>a</b>" doit signifier "all" ;-) :<br /> | |||
<div class="code">rpm -qa</div> | |||
et | |||
<div class="code">rpm -qa | less</div> | |||
Pour afficher la liste page par page... | |||
Trouve un paquet identifié par son nom (toto) : | |||
<div class="code">rpm -qa | grep toto</div> | |||
< | La recherche peut s'appliquer à une partie seulement du nom, par exemple <b>rpm -qa | grep 'util'</b> vous donne la liste de tous les RPM installés tels que util-linux, nautilus, bind_utils etc.. Attention la syntaxe est sensible à la distinction majuscules / minuscules ! | ||
Pour trier par date d'installation : | |||
<div class="code">rpm -qa --last</div> | |||
Pour trier par taille : | |||
<div class="code">rpm -qa --queryformat '%{name} %{size}\n' | sort -n +1 | column -t</div> | |||
Jolie ligne de commande n'est-ce pas ? ;-) | |||
Obtenir la liste des fichiers contenus dans un | Obtenir la liste des fichiers contenus dans un paquet toto qui est déjà installé : | ||
<code>rpm -ql toto</ | <div class="code">rpm -ql toto</div> | ||
On dira que "< | On dira que "<b>l</b>" est l'initiale de "list". | ||
Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce | Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce paquet, une brève description de ce que fait le paquet, des dépendances qui doivent être satisfaites, etc. : | ||
<code>rpm -qi toto</ | <div class="code">rpm -qi toto</div> | ||
On parie que "< | On parie que "<b>i</b>" est mis pour "information" ? <br /> La même chose sur un paquet pas encore installé : | ||
<code>rpm -qip toto.rpm</ | <div class="code">rpm -qip toto.rpm</div> | ||
Avec un "< | Avec un "<b>p</b>" comme "paquet". | ||
Nota : | Nota : | ||
* L'option < | * L'option <b>p</b> s'applique aussi à d'autres syntaxes, par exemple <b>rpm -qlp toto.rpm</b> pour avoir la liste des fichiers d'un paquet non encore installé. | ||
* Les options de requêtes peuvent se cumuler. Par exemple < | * Les options de requêtes peuvent se cumuler. Par exemple <b>rpm -ql'''ip''' toto.rpm</b> donnera à la fois les infos et la liste des fichiers du paquet toto.rpm. | ||
=== Retrouver le | === Retrouver le paquet d'origine d'un fichier : === | ||
<code>rpm -qf /usr/lib/toto.txt</ | <div class="code">rpm -qf /usr/lib/toto.txt</div> | ||
Il peut | Il peut arriver que vous vous trouviez en face d'un fichier dont vous vous demandez quel est le paquet qui a bien pu installer ce fichier. Pas de panique ! Là aussi la commande RPM peut vous être d'une aide précieuse. Ici le '<b>f</b>' signifie fichier (file en anglais). | ||
Cette commande fonctionne sur les | Cette commande fonctionne sur les paquets installés. Oui, mais si on veut trouver un fichier parmi les paquets non installés ?<br /> Si vous utilisez Mandriva (voir la partie sur urpm plus bas), la commande suivante fera l'affaire :<br /><b>urpmf le_fichier</b><br /> Sinon, placez-vous dans le répertoire contenant les .rpm (le CD en général) et faites :<br /><b>for i in *.rpm ; do rpm -qpli $i | grep le_fichier && echo $i ; done</b><br /> ou bien : <br /><b>rpm -q -p -filesbypkg *.rpm | grep le_fichier</b>. | ||
=== Tester l'installation d'une | === Tester l'installation d'une paquet : === | ||
<code>rpm -i --test toto</ | <div class="code">rpm -i --test toto</div> | ||
Effectue simplement une vérification sans installer le | Effectue simplement une vérification sans installer le paquet toto. Permet essentiellement de vérifier si l'installation pourrait se dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire avorter l'installation. | ||
=== Si < | === Si <b>rpm</b> ne veut pas installer le paquet toto === | ||
Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances. | Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances. | ||
<code>rpm -i --nodeps toto</ | <div class="code">rpm -i --nodeps toto</div> | ||
Deuxièmement : forcer l'installation, en cas de conflit avec certains autres < | Deuxièmement : forcer l'installation, en cas de conflit avec certains autres <b>rpm</b>. | ||
<code>rpm -i --force toto</ | <div class="code">rpm -i --force toto</div> | ||
Enfin, combinez les deux options pour vraiment obliger < | Enfin, combinez les deux options pour vraiment obliger <b>rpm</b> à procéder à l'installation. | ||
=== Si < | === Si <b>rpm</b> ne veut pas désinstaller le paquet toto === | ||
Il suffit alors de faire : | Il suffit alors de faire : | ||
< | <b>rpm -qa | grep toto</b> | ||
Affiche la liste des | Affiche la liste des paquets dont le nom contient toto, par exemple : | ||
<code | <div class="code"> | ||
toto-1.2</ | toto-1.1<br /> | ||
toto-1.2 | |||
</div> | |||
<code>rpm -e toto-1.1</ | <div class="code">rpm -e toto-1.1</div> | ||
Désinstalle le | Désinstalle le paquet désigné par son nom '''et''' son numéro de version. | ||
=== Extraire des fichiers d'un RPM : === | === Extraire des fichiers d'un RPM : === | ||
Certains outils comme Midnight Commander (mc, ou gmc) permettent d'ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d'autres répertoires. | Certains outils comme Midnight Commander (commande <b>mc</b>, ou <b>gmc</b>) permettent d'ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d'autres répertoires. | ||
Vous pouvez aussi convertir le rpm en archive cpio (l'ancêtre de tar), par la commande <b>rpm2cpio</b>, et ensuite utiliser la commande <b>cpio</b> pour extraire le ou les fichiers. | |||
=== Installer un RPM dans un autre système Linux que celui qui tourne : === | === Installer un RPM dans un autre système Linux que celui qui tourne : === | ||
Ligne 146 : | Ligne 164 : | ||
Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est : | Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est : | ||
<code>rpm -i --root=/mnt/racine /chemin/ | <div class="code">rpm -i --root=/mnt/racine /chemin/paquet.rpm</div> | ||
Vous pouvez utiliser l'option < | Vous pouvez utiliser l'option <b>--root=/mnt/racine</b> dans toutes les commandes rpm, pour faire des recherches, etc. avec rpm sur l'autre système Linux. | ||
=== ET TOUJOURS : === | === ET TOUJOURS : === | ||
<code>man rpm</ | <div class="code">man rpm</div> | ||
L'accès à la page du manuel, le réflexe qu'on devrait toujours avoir... | L'accès à la page du manuel, le réflexe qu'on devrait toujours avoir... | ||
<br /> | |||
<br /> | <br /> | ||
Ligne 164 : | Ligne 181 : | ||
=== Quelle est la différence entre SRPM et RPM ? === | === Quelle est la différence entre SRPM et RPM ? === | ||
Les | Les paquets SRPM (Source RPM) contiennent les sources d'un logiciel prêtes à être recompilées et transformées en paquet rpm. Afin de reconstruire un paquet rpm à partir d'un srpm (fichier .src.rpm), il faut utiliser la commande : | ||
<div class="code"> # rpmbuild --rebuild paquet.src.rpm</div> | |||
Le paquet rpm résultant se trouvera dans <b>/usr/src/RPM/RPMS/<arch></b> où <b><arch></b> est i386, i586, ppc, etc. suivant votre architecture. | |||
Pour simplement installer le paquet, sans reconstruire le fichier .rpm, faire : | |||
<div class="code"> # rpmbuild --recompile paquet.src.rpm</div> | |||
Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des | Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des vôtres et qui refuse donc de s'installer, tout en conservant l'intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure && make install, cela ne sera pas le cas.). Par exemple - cet exemple date un peu -, vous pouvez récupérer un srpm de Mandrake Cooker (la version de développement) et essayer de le reconstruire sur une Mandrake 8.2. | ||
Note : ce processus nécessite que les | Note : ce processus nécessite que les paquets -devel nécessaires aient été installés, ainsi que les compilateurs utilisés, etc. Voir l'article sur [[Software-soft_gere-compil|la compilation] .<br /> | ||
=== Que sont les fichiers *.rpmsave et *.rpmnew ? === | === Que sont les fichiers *.rpmsave et *.rpmnew ? === | ||
Lorsque rpm installe un | Lorsque rpm installe un paquet, il peut soit conserver les anciens fichiers de configuration ; les nouveaux seront alors renommés en *.rpmnew.<br /> Si rpm remplace les anciens fichiers de configuration par des nouveaux, alors ce sont les anciens qui seront renommés en *.rpmsave. | ||
=== Quelle est la différence entre "installer" et "mettre à jour" ? === | === Quelle est la différence entre "installer" et "mettre à jour" ? === | ||
La mise à jour (''upgrade'' en anglais) remplace l'ancien | La mise à jour (''upgrade'' en anglais) remplace l'ancien paquet par le nouveau, tandis que l'installation conserve si possible l'ancienne version du programme et installe la nouvelle en parallèle. | ||
Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s'il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l'ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d'avoir plusieurs versions d' | Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s'il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l'ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d'avoir plusieurs versions d'une bibliothèque installée sur un système.<br /> | ||
=== Que sont les | === Que sont les paquets -devel ? === | ||
Vous avez sans doute remarqué que souvent, pour un | Vous avez sans doute remarqué que souvent, pour un paquet toto.rpm, vous aviez un deuxième paquet toto-devel.rpm. | ||
toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c'est à dire la version que vous allez utiliser tous les jours. | toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c'est à dire la version que vous allez utiliser tous les jours. | ||
toto-devel.rpm contient des fichiers (les "entêtes", etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur | toto-devel.rpm contient des fichiers (les "entêtes", etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur paquet -devel. | ||
Vous avez besoin d'installer les | Vous avez besoin d'installer les paquets -devel uniquement si vous désirez compiler des logiciels, que ce soit d'après l'archive tar.gz ou le paquet src.rpm.<br /><br /> | ||
<br /> | |||
<br /> | |||
== Les commandes URPM* de Mandriva == | |||
La commande initiale rpm de Red Hat - souffrait de nombreuses limitations que Mandrake puis Mandriva a dépassées, en créant les outils urpm* (User RPM) à partir de Mandrake 7.0 (2000). | |||
urpm est utilisée aujourd'hui par Mandriva et ses dérivées, comme Mageia. Red Hat utilise quant à lui désormais le gestionnaire de paquets [[Fiches:Administration-ficheinstall-Fedora|YUM]] (depuis Fedora Core 1, en 2003) issu de la distribution Yellow Dog. | |||
* résolution automatique et installation/désistallation automatique des | Les avantages d'urpm sur la commande rpm : | ||
* urpm connaît l'ensemble des | * résolution automatique et installation/désistallation automatique des paquets dépendants (rpm indique seulement le nom de paquets manquants) ; | ||
* urpm permet d'installer des | * urpm connaît l'ensemble des paquets installables depuis différentes sources (les CD, serveurs ftp de mise à jour, [http://plf.zarb.org Penguin Liberation Front] ...) ; | ||
* urpm permet d'installer des | * urpm permet d'installer des paquets depuis internet lorsque ceux-ci sont plus récents que sur les CD (depuis Mandrake 8.0) ; | ||
* urpm permet d'installer des paquets en donnant seulement un nom incomplet (exemple : <b>urpmi amarok</b> pour chercher et installer Amarok, <b>urpmi mplayer</b>, etc.) ; | |||
* etc. | * etc. | ||
Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (< | Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (<b>man urpmi</b>, <b>man urpmf</b>, etc.) afin d'en apprendre plus. | ||
Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le | Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le gestionnaire graphique de programmes Rpmdrake (lançable via les menus ou par la commande <b>rpmdrake</b>) qui est une interface graphique aux programmes urpm*. Je vous conseille de tester les deux manières de faire, car contrairement aux apparences, la ligne de commande peut être plus simple et/ou rapide. | ||
=== Configurer urpm === | === Configurer urpm === | ||
==== Ajouter / mettre à jour une source de | ==== Ajouter / mettre à jour une source de paquets ==== | ||
Après avoir installé votre distribution, | Après avoir installé votre distribution, le média d'installation (CD par exmeple) ont été créés dans la base de données de urpm en tant que source de paquets. | ||
Cependant, vous pouvez ajouter autant de sources que vous le désirez. Supposons par exemple que vous ayez un répertoire "incoming/rpms" dans lequel vous placez tous les rpm que vous récupérez sur internet. Vous pouvez l'ajouter à votre base de données urpm par la commande : | |||
Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de | <div class="code"> # urpmi.addmedia mes_rpm file://home/jice/incoming/rpms</div> | ||
Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de paquets. | |||
Par la suite, vous pourrez mettre à jour cette source par :<br /> | Par la suite, vous pourrez mettre à jour cette source par :<br /> | ||
<code>urpmi.update mes_rpm</ | <div class="code">urpmi.update mes_rpm</div> | ||
De même, pour ajouter une source ftp de | De même, pour ajouter une source ftp de paquets, on donne l'URL du fichier hdlist.cz sur le serveur. Exemple pour le [http://plf.zarb.org Penguin Liberation Front] et une Mandrake 9.0 :<br /> | ||
<code>urpmi.addmedia plf ftp://ftp.easynet.fr/plf/9.0 with hdlist.cz</ | <div class="code">urpmi.addmedia plf ftp://ftp.easynet.fr/plf/9.0 with hdlist.cz</div> | ||
Et de la même façon, pour mettre à jour la source de temps en temps : | Et de la même façon, pour mettre à jour la source de temps en temps : | ||
<code>urpmi.update plf</ | <div class="code">urpmi.update plf</div> | ||
L'option -a permet de mettre à jour toutes les sources en même temps | L'option -a permet de mettre à jour toutes les sources en même temps : | ||
<code>urpmi.update -a</ | <div class="code">urpmi.update -a</div> | ||
==== Ajouter des sources distantes ==== | ==== Ajouter des sources distantes ==== | ||
Si vous possédez une connexion à haut débit (ce n'est pas obligatoire, mais conseillé pour utiliser cette option), vous pouvez utiliser des sources <b>main</b> <b>contrib</b> et <b>update</b> situées sur internet. | |||
Si vous possédez une connexion à haut débit (ce n'est pas obligatoire, mais conseillé pour utiliser cette option), vous pouvez utiliser des sources < | |||
L'outil en ligne à [http://easyurpmi.zarb.org cette adresse] vous permet de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique. Si vous avez une connexion à haut débit, je vous conseille même de commencer par un < | L'outil en ligne à [http://easyurpmi.zarb.org cette adresse] vous permet de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique. Si vous avez une connexion à haut débit, je vous conseille même de commencer par un <b>urpmi.removemedia -a</b> pour ne plus utiliser les cdroms comme sources, et ne plus vous fatiguer à les chercher dans la pile de cd. | ||
<u>Note</u> : le fichier de configuration de urpm est < | <u>Note</u> : le fichier de configuration de urpm est <b>/etc/urpmi/urpmi.cfg</b> et les bases de données dans <b>/var/lib/urpmi</b>. | ||
==== Supprimer une source de | ==== Supprimer une source de paquets ==== | ||
Pour supprimer la source mes_rpm, taper :<br /> | Pour supprimer la source mes_rpm, taper :<br /> | ||
<code>urpmi.removemedia mes_rpm</ | <div class="code">urpmi.removemedia mes_rpm</div> | ||
=== Installer avec urpmi === | === Installer avec urpmi === | ||
Ligne 260 : | Ligne 283 : | ||
Pour installer un logiciel avec urpm, rien de plus simple. Vous tapez simplement la commande '''urpmi''' suivie d'une partie du nom du logiciel. Exemple :<br /> | Pour installer un logiciel avec urpm, rien de plus simple. Vous tapez simplement la commande '''urpmi''' suivie d'une partie du nom du logiciel. Exemple :<br /> | ||
<code>urpmi mplayer</ | <div class="code">urpmi mplayer</div> | ||
urpmi va alors chercher la version la plus récente du | urpmi va alors chercher la version la plus récente du paquet correspondant, regarder s'il doit installer des paquets dépendants (et vous en demander confirmation), et installer l'ensemble des paquets. | ||
Dans le cas ou l'argument donné à urpmi est | Dans le cas ou l'argument donné à urpmi est ambigu, urpmi renvoie le nom des paquets correspondants ; il ne vous reste plus qu'à choisir dans la liste et relancer urpmi avec le bon nom de paquets. | ||
Si vous voulez installer le | Si vous voulez installer le paquet qui fournit une librairie (par exemple), utilisez le modifieur <b>-p</b> : | ||
<code> | <div class="code"> # urpmi -p libe2p.so.2</div> | ||
urpmi va alors rechercher quel | urpmi va alors rechercher quel paquet fournit <b>libe2p.so.2</b> et l'installer (ici libext2fs2). | ||
==== Installer directement un ou plusieurs fichiers rpm ==== | ==== Installer directement un ou plusieurs fichiers rpm ==== | ||
Ligne 276 : | Ligne 299 : | ||
Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi : | Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi : | ||
<code>urpmi | <div class="code">urpmi mon_paquet-version.i586.rpm</div> | ||
et le paquet sera mis à jour de la même manière que rpm -U l'aurait fait. | |||
urpmi peut installer plusieurs paquets d'un coup : par exemple, pour installer la dernière version de KDE que j'ai téléchargée, je me mets dans le répertoire où j'ai mis les rpm, et je tape : | |||
urpmi | <div class="code">urpmi *.rpm</div> | ||
< | Pour installer (et non mettre à jour un paquet, par exemple pour ajouter un nouveau noyau en parallèle de l'ancien, ou bien une nouvelle librairie qui doit coexister avec l'ancienne), il faut utiliser l'option <b>-i</b> : | ||
<div class="code">urpmi -i</div>. | |||
urpmi peut également utiliser une url pour installer un paquet. Par exemple, < | urpmi peut également utiliser une url pour installer un paquet. Par exemple, <b>urpmi http://example.com/example.rpm</b> va installer le paquet après l'avoir téléchargé. urpmi supporte http, ftp, rsync et ssh pour le moment. | ||
=== Désinstaller avec urpme === | === Désinstaller avec urpme === | ||
Pour désinstaller un | ====Désinstaller un paquet==== | ||
Pour désinstaller un paquet, il faut utiliser '''urpme''' <nowiki>:</nowiki> | |||
<div class="code">urpme mplayer</div> | |||
désinstallera mplayer. S'il y a des paquets qui en dépendent, urpme demandera s'il doit les désinstaller également. À utiliser avec précaution ;-)<br /> | |||
====Désinstaller toutes les bibliothèques inutilisées==== | |||
La commande <b>urpmi_rpm-find-leaves -g</b> liste les bibliothèques que l'on peut desinstaller sans crainte. | |||
Associé à '''urpme''', cela permet de nettoyer le système de toutes ses bibliothèques inutilisées: | |||
<code>urpme | <div class="code">urpme `urpmi_rpm-find-leaves -g`</div> | ||
Dans certains cas, il est nécessaire d'effectuer la commande plusieurs fois. | |||
=== Rechercher avec urpmf (et urpmq) === | === Rechercher avec urpmf (et urpmq) === | ||
L'outil de choix pour faire de recherches dans les | L'outil de choix pour faire de recherches dans les paquets rpm est ''' urpmf'''. Cela permet de rechercher non seulement dans les paquets installés comme avec rpm -q, mais aussi des paquets installables ! | ||
<div class="code">urpmf toto</div> | |||
renverra la liste de tous les paquets qui contiennent le fichier toto. | |||
urpmf dispose de nombreuses options pour faire des requêtes sur les différentes informations de la base de données des paquets. | |||
Quelques exemples : | |||
Liste des paquets du groupe "Games" : | |||
<div class="code">urpmf --group Games</div> | |||
Taille du paquet "pingus" : | |||
<div class="code"> | |||
urpmf --size pingus<br /> | |||
<br/> | |||
pingus:size:1102629 | |||
</div> | |||
Recherche du mot "pingus" dans les résumés de paquets : | |||
<div class="code"> | |||
urpmf --summary pingus<br /> | |||
pingus:summary:Pingus - A free Lemmings clone | |||
</div> | |||
< | Voir <b>man urpmf</b> pour de plus amples informations. | ||
La commande '''urpmq''' vous permet d'autres types de requêtes : | |||
Liste des paquets dont le nom contient la chaîne "toto" : | |||
<div class="code">urpmq -y toto</div> | |||
Sur quelle source se trouve le paquet toto : | |||
<div class="code"> | <div class="code">urpmq --archive toto</div> | ||
Quels paquets dépendent du paquet toto : | |||
<div class="code"> | <div class="code">urpmq -d toto</div> | ||
Nom complet du fichier rpm du paquet toto : | |||
<div class="code">urpmq -r toto</div> | |||
Résumé d'une ligne d'un paquet ( summary + nom + cersion ) : | |||
Résumé d'une ligne d'un paquet ( summary + nom + cersion ) : | |||
Voir aussi < | <div class="code">urpmq --summary toto</div> | ||
Voir aussi <b>man urpmq</b>.<br /> | |||
=== Mettre à jour le système === | === Mettre à jour le système === | ||
urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que | urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que les distributions publient régulièrement. | ||
Pour ce faire, il faut avoir paramétré un miroir ftp de mises à jour de sécurité dans urpm (voir configuration), ou avec le Gestionnaire de Programmes (qui est bien pratique pour cette opération). | |||
Si la source de mise à jour s'appelle maj_secu, il faut lancer la commandes suivante pour la mettre à jour : | |||
<div class="code">urpmi.update maj_secu</div> | |||
puis : | |||
<div class="code">urpmi --auto-select</div> | |||
Si vous souhaitez que urpm ne mette pas à jour automatiquement certains | urpm va alors lister les paquets mis à jour et vous demander si vous souhaitez les installer (pour qu'il installe tout sans demander, pratique pour mettre la commande dans un cron, ajouter l'option <b>--auto</b>). | ||
Si vous souhaitez que urpm ne mette pas à jour automatiquement certains paquets, il suffit d'ajouter leur nom dans le fichier <b>/etc/urpmi/skip.list</b> . Par exemple, pour empêcher urpm de mettre à jour automatiquement le kernel et la glibc, ajouter dans ce fichier : | |||
<div class="code">kernel<br /> glibc</div> | <div class="code">kernel<br /> glibc</div> | ||
Ligne 338 : | Ligne 412 : | ||
=== Conclusion sur urpm === | === Conclusion sur urpm === | ||
Les commandes urpm sont encore trop peu | Les détails des commandes urpm sont encore trop peu connus ; la maintenance de votre Mandriva ou Mageia sera bien plus aisée avec leur utilisation. | ||
<br /> | |||
<br /> | |||
== apt-get sur Red Hat == | |||
Comme dit plus haut, Red Hat et Fedora recommandent désormais le gestionnaire de paquets [[YUM]]. C'est ce que vous devez utiliser par défaut, le reste étant plus de la « bidouille » :-) | |||
Cependant, Red Hat dispose également d'autres outils pour faciliter la gestion des paquets et la mise à jour du système. J'ai (Jice) testé <b>rpm-get</b> que je n'ai pas trouvé satisfaisant. Par-contre le portage de <b>apt-get</b> sur redhat est véritablement une réussite. C'est donc cet utilitaire dont je parlerai concernant Redhat (pour l'article je travaille sur une Redhat 7.3) | |||
Cette version de apt-get pour RPM, même si elle est critiquée parce qu'elle utilise < | Cette version de apt-get pour RPM, même si elle est critiquée parce qu'elle utilise <b>RPM</b> (contre <b>dpkg</b> pour Debian), est extrêmement efficace | ||
Les principaux apports de < | Les principaux apports de <b>apt-get</b><nowiki>:</nowiki> | ||
* Prise en charge des dépendances pour l'installation et la désinstallation de | * Prise en charge des dépendances pour l'installation et la désinstallation de paquets ; | ||
* Mise à jour complète de la distribution avec les dernières versions des | * Mise à jour complète de la distribution avec les dernières versions des paquets existantes ; | ||
* Comme pour urpm, installation des paquetages en donnant seulement un nom incomplet | * Comme pour urpm, installation des paquetages en donnant seulement un nom incomplet. | ||
=== Installation de apt-get === | === Installation de apt-get === | ||
Ligne 364 : | Ligne 439 : | ||
'''La configuration''' : | '''La configuration''' : | ||
Elle est très simple. Une fois les packages installés il vous suffit de taper < | Elle est très simple. Une fois les packages installés il vous suffit de taper <b>apt-get update</b>. Ceci va synchroniser votre base de données locale avec celle du serveur ftp. Cette commande sera à relancer régulièrement pour remettre à jour cette base de données (à insérer dans une crontab par exemple). | ||
* < | * <b>/etc/apt/sources.list</b> : contient la liste des dépôts pour la récupération des packages. Ces dépôts peuvent être des CD-ROM, un emplacement sur votre disque dur, des URL. | ||
* < | * <b>/etc/apt/apt.conf</b> : fichier de configuration de apt-get | ||
* < | * <b>/var/cache/apt/archives</b> : contient les packages qui ont été downloadés pour être installés. | ||
'''Commande supplémentaire''' : | '''Commande supplémentaire''' : | ||
La commande < | La commande <b>apt-cdrom</b> vous permet de rajouter directement au fichier <b>sources.list</b> des dépôts sur CD-ROM. <br />La syntaxe de la commande : <b>apt-cdrom --cdrom <point-de-montage> add</b><br />'''Exemple : '''<b>apt-cdrom --cdrom /mnt/cdrom add</b><br /> Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages Redhat. | ||
=== Installer / Désinstaller / Mettre à jour des packages === | === Installer / Désinstaller / Mettre à jour des packages === | ||
Ligne 378 : | Ligne 453 : | ||
==== Installer / Mettre à jour un ou plusieurs packages ==== | ==== Installer / Mettre à jour un ou plusieurs packages ==== | ||
* Pour installer un ou plusieurs packages, on utilisera la commande < | * Pour installer un ou plusieurs packages, on utilisera la commande <b>apt-get</b> avec l'argument <b>install</b>.<br />'''Syntaxe''' : <b>apt-get install package1 [package2...]</b><br />'''Exemple''' : <b>apt-get install mplayer</b> installera mplayer et les packages éventuellement nécessaires pour régler les dépendances.<br /> | ||
* Vous pouvez également choisir d'installer des sources. Pour ce faire, il suffit d'utiliser l'argument < | * Vous pouvez également choisir d'installer des sources. Pour ce faire, il suffit d'utiliser l'argument <b>source</b>.<br />'''Exemple :''' <b>apt-get source galeon</b> vous permet de récupérer le RPM source de galeon.<br /> | ||
* Pour mettre à jour un ou plusieurs packages, on utilisera la commande < | * Pour mettre à jour un ou plusieurs packages, on utilisera la commande <b>apt-get</b> avec l'argument <b>upgrade</b>. Il est plus sûr au préalable d'exécuter la commande <b>apt-get update</b> pour mettre à jour la base de données locale et s'assurer que la mise à jour est réalisée avec la dernière version du dit package disponible.<br />'''Syntaxe''' : apt-get upgrade package1 [package2...]<br />'''Exemple''' : <b>apt-get upgrade mplayer</b> mettra à jour mplayer et les packages éventuellement nécessaires pour régler les dépendances. | ||
==== Désinstaller avec apt-get ==== | ==== Désinstaller avec apt-get ==== | ||
Désinstaller un ou plusieurs packages est aussi simple. Il suffit d'utiliser la commande < | Désinstaller un ou plusieurs packages est aussi simple. Il suffit d'utiliser la commande <b>apt-get</b> suivie de l'argument <b>remove</b>.<br />'''Syntaxe''' : apt-get remove package1 [package2...]<br />'''Exemple''' : <b>apt-get remove mplayer</b> supprimera mplayer et les packages qui étaient dépendants de mplayer mais non utilisés par une autre application. | ||
==== Mettre à jour le système ==== | ==== Mettre à jour le système ==== | ||
Enfin < | Enfin <b>apt-get</b> peut vous permettre également de mettre à jour la totalité de votre distribution. Au préalable, on exécutera là encore un <b>apt-get update</b> pou s'assurer de disposer des derniers packages. Puis il suffit de lancer la commande <b>apt-get dist-upgrade</b>. Et le tour est joué ;) | ||
Vous disposez également de la commande < | Vous disposez également de la commande <b>apt-get check</b>. Elle vous permet de vérifier que vous n'avez pas de dépendances non résolues sur votre système. | ||
==== Rechercher des informations sur un package installé ==== | ==== Rechercher des informations sur un package installé ==== | ||
Enfin la commande < | Enfin la commande <b>apt-cache</b> vous permet d'obtenir un certain nombre d'informations sur les packages installés : | ||
* Pour vérifier qu'un package est bien installé, il suffit d'utiliser l'argument <b>search</b>.<br />'''Syntaxe''' : <b>apt-cache search chaine_de_caractères</b> (la chaîne de caractères peut contenir des expressions régulières).<br />'''Exemple :''' vous voulez vérifier que mplayer est bien installé :<br /><div class="code">>apt-cache search mplayer<br /> mplayer - MPlayer, the Movie Player for Linux.<br /> mplayer-skins - A collection of skins for MPlayer.<br /> transcode - A Linux video stream processing utility.</div><br /> | |||
* Pour vérifier les dépendances d'un package, on utilisera l'argument <b>depends</b>.<br />'''Syntaxe''' : <b>apt-cache depends chaine_de_caractères</b><br />'''Exemple :''' vous voulez connaitre les dépendances de mplayer :<br /><div class="code">>apt-cache depends mplayer<br /> mplayer<br /> Depends: libdvdread<br /> Depends: libdvdcss<br /> libdvdcss2<br /> Depends: gtk+<br /> Depends: SDL<br /> Depends: divx4linux<br /> Depends: lame<br /> Depends: libvorbis<br /> Depends: lirc<br /> Depends: libdv<br /> Depends: aalib<br /> Depends: arts </div> | |||
== Voir aussi == | |||
* | * [[YUM|Quelques subtiles options de YUM]] | ||
* | * Les fiches pratiques pour l'installation de logiciels sous [[Fiches:Administration-ficheinstall-Fedora|Fedora]], [[Fiches:Administration-ficheinstall-Mandriva|Mandriva]] et [[Fiches:Administration-ficheinstall-Mageia|Mageia]]. | ||
* [[Installer un logiciel sous Linux]] | |||
* [http://easyurpmi.zarb.org/?language=fr easy URPMI] : un site pour trouver des sources urpmi (toutes ?) | |||
< | <br/> | ||
<br/> | |||
'''<b>[[Logiciels|@ Retour à la rubrique Logiciels]]</b>''' | |||
= | == À propos de cette documentation == | ||
Cette documentation a été écrite par [[Utilisateur:LeaJice|Jean-Christophe 'Jice' Cardot]]; révision par Jean-Marc Lichtle, puis [[Utilisateur:LeaJice|Jice]] et [[Utilisateur:Ennael|Anne]], puis [[Utilisateur:maston28|Jean-Thomas Muyl (maston28)]]; petits ajouts et mises à jour par [[Utilisateur:Misc|Misc]] et [[Utilisateur:Jiel|Jiel]]. | |||
Son titre original était ''RPM, URPMI et apt-get''. Elle a été scindée en trois partie en 2018, [[RPM]], [[URPMI]], [[Installation de apt-get sur Red Hat Linux 7.3]]. | |||
{{Copy|25/02/2000, 2001, 2002, 2004, 2005, 2006, 2011|[[Utilisateur:LeaJice|Jean-Christophe Cardot]], Jean-Marc Lichtle, [[Utilisateur:Ennael|Anne Nicolas]], [[Utilisateur:maston28|Jean-Thomas Muyl (maston28)]]|CC-BY-SA}} | |||
Dernière version du 30 novembre 2023 à 16:58
RPM
Installer des programmes sous GNU/Linux est très simple quand on utilise les bons outils...
Ce document ne vise pas à remplacer la page de man de RPM, mais plutôt de donner une courte référence des commandes les plus utiles pour gérer vos paquets à ce format.
Voir aussi Quelques subtiles options de YUM et les fiches pratiques concernant l'installation de logiciels sous Fedora, Mandriva et Mageia.
Introduction
Le format RPM (RedHat Package Manager), a été, comme son nom l'indique, créé à l'origine pour la distribution Red Hat. Depuis, de nombreuses distributions l'ont utilisé, on peut citer par exemple Mandriva (ex-Mandrake) ou SuSE.
D'autres formats de paquets dans le monde Linux sont DEB (pour Debian) et TGZ (pour Slackware). Qu'est-ce qu'un paquet ? C'est un fichier (une archive, un peu comme un fichier .tar ou .zip) qui contient tous les fichiers appartenant à une application, une bibliothèque, etc. ainsi que des scripts de contrôle qui sont exécutés lors de l'installation ou de la désinstallation de l'application. Ce fichier contient également toutes les dépendances à d'autres applications, bibliothèques, etc.
Note : on parle indifféremment de paquet, package ou même paquetage pour désigner le fichier qui contient l'ensemble des fichiers d'un programme (le fichier rpm lui-même).
Il existe de nombreux utilitaires graphiques tels que Kpackage, GnoRPM, Midnight Commander, etc. qui permettent d'installer et de gérer les paquets RPM. L'installation depuis la ligne de commande reste toutefois la solution la plus rapide et la plus efficace pour ce travail.
La plus grande partie des commandes décrites peuvent être exécutée par un utilisateur lambda. Toutefois les commandes qui installent, mettent à jour ou suppriment des paquets nécessitent des droits d'administrateur (root).
Nous allons voir ici deux méthodes pour gérer les paquets RPM :
Les noms des paquets sont très longs et donc très pénibles à orthographier correctement. Linux offre toutefois des aides à la frappe :
- lorsque vous installez un RPM, ou travaillez sur un RPM non encore installé, utilisez la complétion de ligne de commande en tapant les premières lettres du nom du fichier RPM puis la touche TAB. Si la correspondance reste équivoque, Linux vous donnera les possibilités trouvées, retapera votre ligne et vous laissera ajouter quelques lettres pour lever l'indétermination.
- lorsque vous travaillez sur un RPM qui est déjà installé, la commande rpm s'adresse à la base de données des paquets installés, qui consigne les noms courts en plus des noms de fichiers complets. L'indication du numéro de version n'est donc en général pas nécessaire (sauf si le même package est installé 2 fois avec 2 versions différentes).
Les commandes RPM usuelles
Pour installer un nouveau paquet :
Attention, si vous installez un paquet par cette méthode et qu'il existe déjà sur votre système dans une version inférieure, vous risquez d'avoir des problèmes pour le désinstaller (voir plus bas). Par contre, pour installer une bibliothèque simultanément en deux version différentes, utilisez cette syntaxe.
Les options h et v ne sont pas obligatoires, -i est suffisant pour faire une installation. L'option h provoque l'affichage d'une barre de progression (ça fait très pro sur l'écran !) et v rend l'installation bavarde, ce qui fournit des messages plus explicites en cas d'erreur. L'option -vh peut être appliquée sur toutes les commandes rpm ci-après afin de rendre rpm plus bavard.
Pour mettre à jour un paquet :
Avec un "U" comme "Upgrade" (mise à jour en anglais).
Attention, ceci ne s'applique pas pour upgrader un noyau, voir la rubrique noyau à ce sujet.
Enfin, pour remplacer un paquet par un paquet plus ancien ("downgrader"), la commande à utiliser est :
Pour supprimer un paquet :
rpm -e toto-version
Le "e" correspond à "erase" (effacer en anglais).
La syntaxe complète (avec numéro de version) permet de distinguer deux versions d'un même paquet qui auraient été installées ensemble.
Pour faire des requêtes sur les paquets :
Afficher la liste de tous les paquets déjà installés J'imagine que "a" doit signifier "all" ;-) :
et
Pour afficher la liste page par page...
Trouve un paquet identifié par son nom (toto) :
La recherche peut s'appliquer à une partie seulement du nom, par exemple rpm -qa | grep 'util' vous donne la liste de tous les RPM installés tels que util-linux, nautilus, bind_utils etc.. Attention la syntaxe est sensible à la distinction majuscules / minuscules !
Pour trier par date d'installation :
Pour trier par taille :
Jolie ligne de commande n'est-ce pas ? ;-)
Obtenir la liste des fichiers contenus dans un paquet toto qui est déjà installé :
On dira que "l" est l'initiale de "list".
Dans la foulée de la syntaxe précédente, celle-ci donne les informations relatives à ce paquet, une brève description de ce que fait le paquet, des dépendances qui doivent être satisfaites, etc. :
On parie que "i" est mis pour "information" ?
La même chose sur un paquet pas encore installé :
Avec un "p" comme "paquet".
Nota :
- L'option p s'applique aussi à d'autres syntaxes, par exemple rpm -qlp toto.rpm pour avoir la liste des fichiers d'un paquet non encore installé.
- Les options de requêtes peuvent se cumuler. Par exemple rpm -qlip toto.rpm donnera à la fois les infos et la liste des fichiers du paquet toto.rpm.
Retrouver le paquet d'origine d'un fichier :
Il peut arriver que vous vous trouviez en face d'un fichier dont vous vous demandez quel est le paquet qui a bien pu installer ce fichier. Pas de panique ! Là aussi la commande RPM peut vous être d'une aide précieuse. Ici le 'f' signifie fichier (file en anglais).
Cette commande fonctionne sur les paquets installés. Oui, mais si on veut trouver un fichier parmi les paquets non installés ?
Si vous utilisez Mandriva (voir la partie sur urpm plus bas), la commande suivante fera l'affaire :
urpmf le_fichier
Sinon, placez-vous dans le répertoire contenant les .rpm (le CD en général) et faites :
for i in *.rpm ; do rpm -qpli $i | grep le_fichier && echo $i ; done
ou bien :
rpm -q -p -filesbypkg *.rpm | grep le_fichier.
Tester l'installation d'une paquet :
Effectue simplement une vérification sans installer le paquet toto. Permet essentiellement de vérifier si l'installation pourrait se dérouler sans encombre ou alors si des dépendances non satisfaites risquent de faire avorter l'installation.
Si rpm ne veut pas installer le paquet toto
Il existe plusieurs options. Premièrement : ne pas vérifier les dépendances.
Deuxièmement : forcer l'installation, en cas de conflit avec certains autres rpm.
Enfin, combinez les deux options pour vraiment obliger rpm à procéder à l'installation.
Si rpm ne veut pas désinstaller le paquet toto
Il suffit alors de faire :
rpm -qa | grep toto
Affiche la liste des paquets dont le nom contient toto, par exemple :
toto-1.1
toto-1.2
Désinstalle le paquet désigné par son nom et son numéro de version.
Extraire des fichiers d'un RPM :
Certains outils comme Midnight Commander (commande mc, ou gmc) permettent d'ouvrir des fichiers rpm, de se déplacer dedans et de copier des fichiers vers d'autres répertoires.
Vous pouvez aussi convertir le rpm en archive cpio (l'ancêtre de tar), par la commande rpm2cpio, et ensuite utiliser la commande cpio pour extraire le ou les fichiers.
Installer un RPM dans un autre système Linux que celui qui tourne :
Vous avez plusieurs systèmes Linux sur votre machine, ou bien vous avez bouté avec le CD ou une disquette de sauvegarde. Vous souhaitez installer un rpm dans un autre système dont la partition racine est monté dans /mnt/racine. La commande à taper est :
Vous pouvez utiliser l'option --root=/mnt/racine dans toutes les commandes rpm, pour faire des recherches, etc. avec rpm sur l'autre système Linux.
ET TOUJOURS :
L'accès à la page du manuel, le réflexe qu'on devrait toujours avoir...
Quelques précisions concernant rpm
Quelle est la différence entre SRPM et RPM ?
Les paquets SRPM (Source RPM) contiennent les sources d'un logiciel prêtes à être recompilées et transformées en paquet rpm. Afin de reconstruire un paquet rpm à partir d'un srpm (fichier .src.rpm), il faut utiliser la commande :
Le paquet rpm résultant se trouvera dans /usr/src/RPM/RPMS/<arch> où <arch> est i386, i586, ppc, etc. suivant votre architecture.
Pour simplement installer le paquet, sans reconstruire le fichier .rpm, faire :
Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des vôtres et qui refuse donc de s'installer, tout en conservant l'intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure && make install, cela ne sera pas le cas.). Par exemple - cet exemple date un peu -, vous pouvez récupérer un srpm de Mandrake Cooker (la version de développement) et essayer de le reconstruire sur une Mandrake 8.2.
Note : ce processus nécessite que les paquets -devel nécessaires aient été installés, ainsi que les compilateurs utilisés, etc. Voir l'article sur [[Software-soft_gere-compil|la compilation] .
Que sont les fichiers *.rpmsave et *.rpmnew ?
Lorsque rpm installe un paquet, il peut soit conserver les anciens fichiers de configuration ; les nouveaux seront alors renommés en *.rpmnew.
Si rpm remplace les anciens fichiers de configuration par des nouveaux, alors ce sont les anciens qui seront renommés en *.rpmsave.
Quelle est la différence entre "installer" et "mettre à jour" ?
La mise à jour (upgrade en anglais) remplace l'ancien paquet par le nouveau, tandis que l'installation conserve si possible l'ancienne version du programme et installe la nouvelle en parallèle.
Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s'il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l'ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d'avoir plusieurs versions d'une bibliothèque installée sur un système.
Que sont les paquets -devel ?
Vous avez sans doute remarqué que souvent, pour un paquet toto.rpm, vous aviez un deuxième paquet toto-devel.rpm.
toto.rpm contient le logiciel, bibliothèque, etc. lui-même, c'est à dire la version que vous allez utiliser tous les jours.
toto-devel.rpm contient des fichiers (les "entêtes", etc.) qui permettent de compiler des programmes qui utilisent toto. Ainsi, toutes les bibliothèques ont leur paquet -devel.
Vous avez besoin d'installer les paquets -devel uniquement si vous désirez compiler des logiciels, que ce soit d'après l'archive tar.gz ou le paquet src.rpm.
Les commandes URPM* de Mandriva
La commande initiale rpm de Red Hat - souffrait de nombreuses limitations que Mandrake puis Mandriva a dépassées, en créant les outils urpm* (User RPM) à partir de Mandrake 7.0 (2000).
urpm est utilisée aujourd'hui par Mandriva et ses dérivées, comme Mageia. Red Hat utilise quant à lui désormais le gestionnaire de paquets YUM (depuis Fedora Core 1, en 2003) issu de la distribution Yellow Dog.
Les avantages d'urpm sur la commande rpm :
- résolution automatique et installation/désistallation automatique des paquets dépendants (rpm indique seulement le nom de paquets manquants) ;
- urpm connaît l'ensemble des paquets installables depuis différentes sources (les CD, serveurs ftp de mise à jour, Penguin Liberation Front ...) ;
- urpm permet d'installer des paquets depuis internet lorsque ceux-ci sont plus récents que sur les CD (depuis Mandrake 8.0) ;
- urpm permet d'installer des paquets en donnant seulement un nom incomplet (exemple : urpmi amarok pour chercher et installer Amarok, urpmi mplayer, etc.) ;
- etc.
Sur chacune des commandes dont on va parler ci-dessous, je vous conseille de lire la page de man (man urpmi, man urpmf, etc.) afin d'en apprendre plus.
Toutes les actions décrites ici peuvent également être réalisées de manière graphique, avec le gestionnaire graphique de programmes Rpmdrake (lançable via les menus ou par la commande rpmdrake) qui est une interface graphique aux programmes urpm*. Je vous conseille de tester les deux manières de faire, car contrairement aux apparences, la ligne de commande peut être plus simple et/ou rapide.
Configurer urpm
Ajouter / mettre à jour une source de paquets
Après avoir installé votre distribution, le média d'installation (CD par exmeple) ont été créés dans la base de données de urpm en tant que source de paquets.
Cependant, vous pouvez ajouter autant de sources que vous le désirez. Supposons par exemple que vous ayez un répertoire "incoming/rpms" dans lequel vous placez tous les rpm que vous récupérez sur internet. Vous pouvez l'ajouter à votre base de données urpm par la commande :
Où mes_rpm est le nom (arbitraire) que vous donnez à votre source de paquets.
Par la suite, vous pourrez mettre à jour cette source par :
De même, pour ajouter une source ftp de paquets, on donne l'URL du fichier hdlist.cz sur le serveur. Exemple pour le Penguin Liberation Front et une Mandrake 9.0 :
Et de la même façon, pour mettre à jour la source de temps en temps :
L'option -a permet de mettre à jour toutes les sources en même temps :
Ajouter des sources distantes
Si vous possédez une connexion à haut débit (ce n'est pas obligatoire, mais conseillé pour utiliser cette option), vous pouvez utiliser des sources main contrib et update situées sur internet.
L'outil en ligne à cette adresse vous permet de configurer vos sources urpmi facilement selon votre distribution et votre localisation géographique. Si vous avez une connexion à haut débit, je vous conseille même de commencer par un urpmi.removemedia -a pour ne plus utiliser les cdroms comme sources, et ne plus vous fatiguer à les chercher dans la pile de cd.
Note : le fichier de configuration de urpm est /etc/urpmi/urpmi.cfg et les bases de données dans /var/lib/urpmi.
Supprimer une source de paquets
Pour supprimer la source mes_rpm, taper :
Installer avec urpmi
Installer depuis les sources urpm
Pour installer un logiciel avec urpm, rien de plus simple. Vous tapez simplement la commande urpmi suivie d'une partie du nom du logiciel. Exemple :
urpmi va alors chercher la version la plus récente du paquet correspondant, regarder s'il doit installer des paquets dépendants (et vous en demander confirmation), et installer l'ensemble des paquets.
Dans le cas ou l'argument donné à urpmi est ambigu, urpmi renvoie le nom des paquets correspondants ; il ne vous reste plus qu'à choisir dans la liste et relancer urpmi avec le bon nom de paquets.
Si vous voulez installer le paquet qui fournit une librairie (par exemple), utilisez le modifieur -p :
urpmi va alors rechercher quel paquet fournit libe2p.so.2 et l'installer (ici libext2fs2).
Installer directement un ou plusieurs fichiers rpm
Dans ce cas, il suffit de passer le nom du fichier en argument à urpmi :
et le paquet sera mis à jour de la même manière que rpm -U l'aurait fait.
urpmi peut installer plusieurs paquets d'un coup : par exemple, pour installer la dernière version de KDE que j'ai téléchargée, je me mets dans le répertoire où j'ai mis les rpm, et je tape :
Pour installer (et non mettre à jour un paquet, par exemple pour ajouter un nouveau noyau en parallèle de l'ancien, ou bien une nouvelle librairie qui doit coexister avec l'ancienne), il faut utiliser l'option -i :
.
urpmi peut également utiliser une url pour installer un paquet. Par exemple, urpmi http://example.com/example.rpm va installer le paquet après l'avoir téléchargé. urpmi supporte http, ftp, rsync et ssh pour le moment.
Désinstaller avec urpme
Désinstaller un paquet
Pour désinstaller un paquet, il faut utiliser urpme :
désinstallera mplayer. S'il y a des paquets qui en dépendent, urpme demandera s'il doit les désinstaller également. À utiliser avec précaution ;-)
Désinstaller toutes les bibliothèques inutilisées
La commande urpmi_rpm-find-leaves -g liste les bibliothèques que l'on peut desinstaller sans crainte.
Associé à urpme, cela permet de nettoyer le système de toutes ses bibliothèques inutilisées:
Dans certains cas, il est nécessaire d'effectuer la commande plusieurs fois.
Rechercher avec urpmf (et urpmq)
L'outil de choix pour faire de recherches dans les paquets rpm est urpmf. Cela permet de rechercher non seulement dans les paquets installés comme avec rpm -q, mais aussi des paquets installables !
renverra la liste de tous les paquets qui contiennent le fichier toto.
urpmf dispose de nombreuses options pour faire des requêtes sur les différentes informations de la base de données des paquets.
Quelques exemples :
Liste des paquets du groupe "Games" :
Taille du paquet "pingus" :
urpmf --size pingus
pingus:size:1102629
Recherche du mot "pingus" dans les résumés de paquets :
urpmf --summary pingus
pingus:summary:Pingus - A free Lemmings clone
Voir man urpmf pour de plus amples informations.
La commande urpmq vous permet d'autres types de requêtes :
Liste des paquets dont le nom contient la chaîne "toto" :
Sur quelle source se trouve le paquet toto :
Quels paquets dépendent du paquet toto :
Nom complet du fichier rpm du paquet toto :
Résumé d'une ligne d'un paquet ( summary + nom + cersion ) :
Voir aussi man urpmq.
Mettre à jour le système
urpm vous permet de mettre à jour votre système avec les derniers correctifs de sécurité et les corrections de bugs que les distributions publient régulièrement.
Pour ce faire, il faut avoir paramétré un miroir ftp de mises à jour de sécurité dans urpm (voir configuration), ou avec le Gestionnaire de Programmes (qui est bien pratique pour cette opération).
Si la source de mise à jour s'appelle maj_secu, il faut lancer la commandes suivante pour la mettre à jour :
puis :
urpm va alors lister les paquets mis à jour et vous demander si vous souhaitez les installer (pour qu'il installe tout sans demander, pratique pour mettre la commande dans un cron, ajouter l'option --auto).
Si vous souhaitez que urpm ne mette pas à jour automatiquement certains paquets, il suffit d'ajouter leur nom dans le fichier /etc/urpmi/skip.list . Par exemple, pour empêcher urpm de mettre à jour automatiquement le kernel et la glibc, ajouter dans ce fichier :
glibc
Conclusion sur urpm
Les détails des commandes urpm sont encore trop peu connus ; la maintenance de votre Mandriva ou Mageia sera bien plus aisée avec leur utilisation.
apt-get sur Red Hat
Comme dit plus haut, Red Hat et Fedora recommandent désormais le gestionnaire de paquets YUM. C'est ce que vous devez utiliser par défaut, le reste étant plus de la « bidouille » :-)
Cependant, Red Hat dispose également d'autres outils pour faciliter la gestion des paquets et la mise à jour du système. J'ai (Jice) testé rpm-get que je n'ai pas trouvé satisfaisant. Par-contre le portage de apt-get sur redhat est véritablement une réussite. C'est donc cet utilitaire dont je parlerai concernant Redhat (pour l'article je travaille sur une Redhat 7.3)
Cette version de apt-get pour RPM, même si elle est critiquée parce qu'elle utilise RPM (contre dpkg pour Debian), est extrêmement efficace
Les principaux apports de apt-get:
- Prise en charge des dépendances pour l'installation et la désinstallation de paquets ;
- Mise à jour complète de la distribution avec les dernières versions des paquets existantes ;
- Comme pour urpm, installation des paquetages en donnant seulement un nom incomplet.
Installation de apt-get
Les packages à installer :
Vous devez installer au moins le package apt-get . Il contient les binaires que nous allons utiliser par la suite. Pour ceux qui préfèreraient utiliser une interface graphique, il en existe une, extrêmement conviviale, synaptic.
La configuration :
Elle est très simple. Une fois les packages installés il vous suffit de taper apt-get update. Ceci va synchroniser votre base de données locale avec celle du serveur ftp. Cette commande sera à relancer régulièrement pour remettre à jour cette base de données (à insérer dans une crontab par exemple).
- /etc/apt/sources.list : contient la liste des dépôts pour la récupération des packages. Ces dépôts peuvent être des CD-ROM, un emplacement sur votre disque dur, des URL.
- /etc/apt/apt.conf : fichier de configuration de apt-get
- /var/cache/apt/archives : contient les packages qui ont été downloadés pour être installés.
Commande supplémentaire :
La commande apt-cdrom vous permet de rajouter directement au fichier sources.list des dépôts sur CD-ROM.
La syntaxe de la commande : apt-cdrom --cdrom <point-de-montage> add
Exemple : apt-cdrom --cdrom /mnt/cdrom add
Il vous reste alors à insérer successivement tous les CD en votre possession qui contiennent les packages Redhat.
Installer / Désinstaller / Mettre à jour des packages
Installer / Mettre à jour un ou plusieurs packages
- Pour installer un ou plusieurs packages, on utilisera la commande apt-get avec l'argument install.
Syntaxe : apt-get install package1 [package2...]
Exemple : apt-get install mplayer installera mplayer et les packages éventuellement nécessaires pour régler les dépendances. - Vous pouvez également choisir d'installer des sources. Pour ce faire, il suffit d'utiliser l'argument source.
Exemple : apt-get source galeon vous permet de récupérer le RPM source de galeon. - Pour mettre à jour un ou plusieurs packages, on utilisera la commande apt-get avec l'argument upgrade. Il est plus sûr au préalable d'exécuter la commande apt-get update pour mettre à jour la base de données locale et s'assurer que la mise à jour est réalisée avec la dernière version du dit package disponible.
Syntaxe : apt-get upgrade package1 [package2...]
Exemple : apt-get upgrade mplayer mettra à jour mplayer et les packages éventuellement nécessaires pour régler les dépendances.
Désinstaller avec apt-get
Désinstaller un ou plusieurs packages est aussi simple. Il suffit d'utiliser la commande apt-get suivie de l'argument remove.
Syntaxe : apt-get remove package1 [package2...]
Exemple : apt-get remove mplayer supprimera mplayer et les packages qui étaient dépendants de mplayer mais non utilisés par une autre application.
Mettre à jour le système
Enfin apt-get peut vous permettre également de mettre à jour la totalité de votre distribution. Au préalable, on exécutera là encore un apt-get update pou s'assurer de disposer des derniers packages. Puis il suffit de lancer la commande apt-get dist-upgrade. Et le tour est joué ;)
Vous disposez également de la commande apt-get check. Elle vous permet de vérifier que vous n'avez pas de dépendances non résolues sur votre système.
Rechercher des informations sur un package installé
Enfin la commande apt-cache vous permet d'obtenir un certain nombre d'informations sur les packages installés :
- Pour vérifier qu'un package est bien installé, il suffit d'utiliser l'argument search.
Syntaxe : apt-cache search chaine_de_caractères (la chaîne de caractères peut contenir des expressions régulières).
Exemple : vous voulez vérifier que mplayer est bien installé :>apt-cache search mplayer
mplayer - MPlayer, the Movie Player for Linux.
mplayer-skins - A collection of skins for MPlayer.
transcode - A Linux video stream processing utility. - Pour vérifier les dépendances d'un package, on utilisera l'argument depends.
Syntaxe : apt-cache depends chaine_de_caractères
Exemple : vous voulez connaitre les dépendances de mplayer :>apt-cache depends mplayer
mplayer
Depends: libdvdread
Depends: libdvdcss
libdvdcss2
Depends: gtk+
Depends: SDL
Depends: divx4linux
Depends: lame
Depends: libvorbis
Depends: lirc
Depends: libdv
Depends: aalib
Depends: arts
Voir aussi
- Quelques subtiles options de YUM
- Les fiches pratiques pour l'installation de logiciels sous Fedora, Mandriva et Mageia.
- Installer un logiciel sous Linux
- easy URPMI : un site pour trouver des sources urpmi (toutes ?)
@ Retour à la rubrique Logiciels
À propos de cette documentation
Cette documentation a été écrite par Jean-Christophe 'Jice' Cardot; révision par Jean-Marc Lichtle, puis Jice et Anne, puis Jean-Thomas Muyl (maston28); petits ajouts et mises à jour par Misc et Jiel.
Son titre original était RPM, URPMI et apt-get. Elle a été scindée en trois partie en 2018, RPM, URPMI, Installation de apt-get sur Red Hat Linux 7.3.
Copyright
© 25/02/2000, 2001, 2002, 2004, 2005, 2006, 2011 Jean-Christophe Cardot, Jean-Marc Lichtle, Anne Nicolas, Jean-Thomas Muyl (maston28)
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 4.0 : https://creativecommons.org/licenses/by-sa/4.0/ |