SDB:Rpm - Le gestionnaire de paquetages de SuSE Linux
Version: 5.0
Sommaire
rpm - Le gestionnaire de paquetages de SuSE Linux
C'est depuis la version 5.0 que »rpm
« (en anglais Red Hat Package Manager) a été introduit dans SuSE Linux. Grâce à cela, la gestion des paquetages a pu être simplifiée pour tous les intéressés, les utilisateurs, les administrateurs de système et, bien sûr, pour ceux qui créent les paquetages. Grâce à la base de données des RPM on dispose, à tout moment, d'informations très détaillées sur les logiciels installés.
rpm
peut en principe opérer dans trois modes differents : créer des paquetages qu'on peut installer à partir des sources d'origine intactes (en anglais pristine sources), les installer, respectivement les désinstaller, ou les mettre à jour, et soumettre des requêtes soit à la base de données RPM, soit à une archive prise isolément. Dans les sections suivantes nous parlerons en détail des deux derniers points.
Les archives RPM à installer se présente dans un format binaire spécial ; elles sont composées de fichiers (programmes) à installer et de différentes sortes de méta-informations qui sont utilisées durant l'installation de rpm
en vue de configurer le paquetage considéré ; celles-ci peuvent aussi être sauvegardées dans la base de données des RPM pour la documentation. Les archives sont munies du suffixe .rpm
.
Gestion des paquetages : installation, mise à jour et désinstallation
En principe il est très facile d'installer une archive RPM :
rpm -i PAQUETAGE.rpm
Avec cette commande on peut aisément installer un paquetage RPM dans le cas où il n'y a pas de "conflits" et si les conditions de "dépendance" sont remplies. Dans le cas où les conditions de dépendance ne sont pas reunies, rpm
émet un message d'erreur afin de déterminer les paquetages nécessaires. La base de données veille en arrière-plan à ce qu'il n'y ait pas de conflits : normalement un fichier doit appartenir à un seul paquetage. A l'aide des différentes options qu'offre rpm, on peut aller au delà de ces régles - cependant, celui qui veut les utiliser doit savoir exactement ce qu'il fait sinon il risque de créer des problèmes lors de la mise à jour d'un paquetage.
L'option -U
respectivement --upgrade
est également très intéressante pour procéder à la mise à jour d'un paquetage. Elle se charge d'effacer l'ancienne version d'un paquetage puis d'en installer la nouvelle version. Dans le même temps, rpm
tente de gérer avec précaution les fichiers de configuration en suivant la stratégie suivante :
- Dans le cas où un fichier de configuration n'a pas été modifié par l'administrateur de système, la nouvelle version du fichier correspondant sera installée par
rpm
. Aucune manipulation de la part de l'administrateur n'est requise. - Dans le cas où un fichier de configuration a été modifié par l'administrateur de système à un moment quelconque avant la mise à jour,
rpm
procédera alors à une sauvegarde (avec le suffixe.rpmorig
) du fichier modifié et installera la nouvelle version du paquetage RPM uniquement si le fichier original et le fichier du paquetage de mise à jour diffèrent. Dans ce cas, il est très probable que vous aurez à adapter le fichier de configuration fraîchement installé aux conditions de votre système à l'aide de votre copie de sauvegarde (.rpmorig
). Après cela, il est indispensable d'effacer tous les fichier.rpmorig
afin de ne pas poser de problèmes lors des prochaines mises à jour.
Après chaque mise à jour, vous devez absolument contrôler toutes les copies de sauvegarde (avec le suffixe .rpmorig
) réalisées par rpm
; il s'agit de vos anciens fichiers de configuration. Si cela s'avère indispensable, pensez à procéder aux modifications nécessaires (telles que dans les fichiers .rpmorig
) dans vos nouveaux fichiers de configuration puis effacez vos anciens fichiers .rpmorig
.
Dans le cas où un paquetage doit tout simplement être désinstallé/effacé, on procède de la manière suivante :
rpm -e PAKET
Cependant, rpm
ne désinstallera/effacera un paquetage que si aucune dépendance n'existe plus ; ainsi, il n'est pas possible de désinstaller/effacer, par exemple, Tcl/Tk aussi longtemps que n'importe quel programme aura besoin de cette application pour fonctionner. RPM vérifie cela à l'aide de la base de données.
Dans le cas exceptionnel où une telle opération de désinstallation ne serait pas possible bien que plus aucune dépendance n'existe, il peut être utile de reconstituer la base de données RPM à l'aide de l'option --rebuilddb
; vous trouverez plus d'informations à ce sujet ici : fr:SDB:rpm - Le gestionnaire de paquetages de SuSE Linux.
Requêtes :
On peut procéder à des requêtes à l'aide de l'option -q
(en anglais query). Cette option peut être utilisée pour effectuer une requête dans une archive RPM (option -p FICHIER_PAQUETAGE
) comme dans la base de données RPM. On peut également spécifier encore l'information requise à l'aide de switches supplémentaires :
-
-i
- Affiche les informations relatives au paquetage
-
-l
- Affiche la liste des fichiers du paquetage
-
-f FICHIER+
- Affiche le paquetage qui contient le fichier
FICHIER
;FICHIER
doit ici être saisi avec son chemin complet ! -
-s
- Affiche le statut des fichiers (nécessite
-l
) -
-d
- Affiche uniquement les fichiers de documentation (nécessite
-l
) -
-c
- Affiche uniquement les fichiers de configuration (nécessite
-l
) -
--dump
- Affiche toutes les informations vérifiables pour chaque fichier (utiliser avec
-l
,-c
ou-d
!) -
--provides
- Affiche les caractéristiques du paquetage
-
--requires
,-R
- Affiche les dépendances du paquetage
-
--scripts
- Affiche les différentes installations/désinstallations
La commande :
rpm -q -i rpm
donne, par exemple, les informations suivantes :
Name : rpm Distribution: SuSE Linux 6.1 (i386) Version : 2.5.5 Vendor: SuSE GmbH, Nuernberg, Germany Release : 20 Build Date: Fri Mar 19 02:04:57 1999
Install date: Sat Mar 20 15:36:00 1999 Build Host: Bareis.suse.de Group : unsorted Source RPM: rpm-2.5.5-20.src.rpm Size : 2111887 License: GPL Packager : feedback@suse.de Summary : rpm - Red Hat Package Manager
Description : rpm (Red Hat Package Manager) is the main tool for managing software packages of the SuSELinux distribution. rpm can be used to install and remove software packages; with rpm it's easy to update packages. rpm keep track of all these manipulations in a central database. This way it is possible to get an overview of all installed packages; rpm also supports database queries.
L'option -f
fonctionne uniquement si vous connaissez le nom complet du fichier avec le chemin ; il est possible de donner autant de noms de fichier que l'on souhaite, par exemple :
rpm -q -f /bin/rpm /usr/bin/wget
donne le résultat suivant :
rpm-2.5.5-20 wget-1.5.3-34
Si vous ne connaissez qu'une partie du nom du fichier, vous devrez avoir recours à un scritp de ce type pour vous aider (le script nécessite le nom du fichier comme paramètre) :
#! /bin/sh
for i in `rpm -q -a -l | grep $1 `; do echo »$i« ist in Paket: rpm -q -f $i echo "" done
La base de données peut être utilisée pour procéder à des vérifications ; ces requêtes sont démarrées avec l'option -V
(qui a la même signification que -y
ou --verify
). Avec ces options, rpm
affiche tous les fichiers qui sont différents de leur ancienne version telle qu'elle était dans le paquetage original. rpm
affiche jusqu'à huit lettres devant le nom du fichier qui correspondent aux changements suivants :
-
5
- MD5-somme de la vérification
-
S
- taille du fichier
-
L
- lien symbolique
-
T
- date de la modification
-
D
- périphérique
-
U
- utilisateur (user)
-
G
- groupe (group)
-
M
- mode (permissions et types inclus)
En outre, dans le cas des fichiers de configuration, un c
sera également affiché. Par exemple, dans le cas où quelque chose dans /etc/wgetrc
de wget
a été modifié :
rpm -V wget
S.5....T c /etc/wgetrc
Base de données RPM
Les fichiers de la base de données RPM se trouvent sous /var/lib/rpm
. Dans le cas d'une partition /usr
de 500 Mo, la base de données peut facilement nécessiter 20 Mo d'espace disque ; en particulier après une mise à jour complète. Si la base de données apparaît particulièrement importante, il peut être utile de reconstituer une base de données à partir de la base de données déjà existante à l'aide de l'option --rebuilddb
; il est sage de faire une copie de sauvegarde de l'ancienne base de données avant de procéder à une telle reconstitution ("Rebuild").
En outre, le script cron
cron.daily
crée, chaque jour où des changement ont eu lieu, une copie de la base de données, la compacte et la sauvegarde sous /var/adm/backup/rpmdb
; le nombre des copies de la base de données est déterminé par la variable MAX_RPMDB_BACKUPS
(par défaut : 5) dans /etc/rc.config
; il faut compter avec environ 3 Mo par copie (dans le cas d'un /usr
de 500 Mo). Il est nécessaire de tenir compte de l'espace de disque requis à cette fin lors de la définition de la taille de la partition root si vous ne prévoyez pas de partition /var
propre.
Outils pour les archives RPM
Le Midnight Commander (mc
) est capable de montrer ou de copier le contenu d'une archive RPM, respectivement de parties de cette archive, d'un endroit vers un autre. Il affiche le contenu d'une telle archive sous forme d'un système de fichiers virtuel afin que tous les contrôles habituels du menu du Midnight Commander, lorque cela a un sens, soient à disposition : les informations contenues dans l'en-tête du "fichier" HEADER
peuvent être affichées à l'aide de F3
; avec les touches de direction du curseur et la touche entrée
, vous pouvez "naviguer" dans la structure de l'archive et, si nécessaire, en recopier des composants à l'aide de la touche F5
. Au passage, on remarquera que Emacs peut également réaliser cette "navigation" avec un module additionnel ;-)
Avec Alien (alien
), il est possible de convertir le format de paquetage des différentes distributions. Ainsi, on peut tenter de convertir d'anciennes archives TGZ en archives RPM avant de procéder à leur installation afin que, durant celle-ci, la base de données RPM puisse obtenir les informations qui concernent ce paquetage. Cependant, attention : alien
est un script perl et se trouve toujours dans un stade "alpha", d'après l'auteur du programme, même s'il se trouve déjà dans sa version 6.18 en ce moment (6.1).
<keyword>rpm,paquetages,paketmanager,gestionnairede</keyword>