SuSE Linux: des versions à partir de 5.0
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
.
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 :
rpm
. Aucune manipulation de la part de
l'administrateur n'est requise.
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 :
Base de données RPM.
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
-l
-f FICHIER+
FICHIER
;
FICHIER
doit ici être saisi avec son chemin complet !
-s
-l
)
-d
-l
)
-c
-l
)
--dump
-l
, -c
ou -d
!)
--provides
--requires
, -R
--scripts
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
S
L
T
D
U
G
M
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
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.
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).