Gestion de paquetages

Paquetages ? Quézaco ?

Je cite : Le système de paquetage est un ensemble de programme chargé d'installer, de mettre à jour et de supprimer les logiciels tout en répertoriant leurs fichiers dans une base de données. Cette organisation vous permet de déterminer à tout moment à quel paquetage appartient tel fichier ou quel est le contenu de tel paquetage. ( Lucien Nardini in http://linuce.free.fr/Docs/slackware/presentation/index.html ).

Les paquetages (packages en anglais) peuvent dépendre les uns des autres. Par exemple, l'interface graphique de gravure xcdroast s'appuie sur le progamme cdrecord qui grave un CD-ROM en ligne de commande.

Il existe différents systèmes de paquetages, et donc différents outils pour les installer/désinstaller.

paquetages RPM

La distribution GNU/Linux Mandrake (http://www.mandrakelinux.com/fr/ ) s'appuie sur des paquetages RPM ( Red Hat Package Management ). Les commandes de base commencent par rpm. Les commandes évoluées commencent par urpm.

Il faut être root pour installer/désinstaller des paquetages.

# id                                       
uid=0(root) gid=0(root) groupes=0(root)

installer/désinstaller

Pour désinstaller le programme lspci :

# urpme lspci
paquetage inconnu: lspci

Manque de bol, le paquetage qui contient le programme lspci ne semble pas s'appeler lspci. Quel paquetage contient un fichier nommé lspci ?

# urpmf lspci
ldetect:/usr/bin/lspcidrake
pciutils:/usr/bin/lspci
pciutils:/usr/share/man/man8/lspci.8.bz2
man-pages-ja:/usr/share/man/ja/man8/lspci.8.bz2
man-pages-pl:/usr/share/man/pl/man8/lspci.8.bz2

Il s'agit du paquetage pciutils. Pour le désinstaller :

# urpme pciutils

désinstallation de pciutils-2.1.11-4mdk.i586

Pour installer pciutils :

# urpmi pciutils
Veuillez insérer le medium nommé « Installation CD 2 (x86) (cdrom2) » dans le périphérique [/dev/hdc]
Appuyez sur la touche Entrée quand vous êtes prêts... 

installation de /mnt/cdrom/Mandrake/RPMS2/pciutils-2.1.11-4mdk.i586.rpm
Préparation...              ##################################################
   1:pciutils               ##################################################

Vérification : lister les fichiers contenus dans le paquetage pciutils qui vient d'être installé :

# rpm -q -l pciutils
/usr/bin/lspci
/usr/bin/pcimodules
/usr/bin/setpci
/usr/share/doc/pciutils-2.1.11
/usr/share/doc/pciutils-2.1.11/ChangeLog
/usr/share/doc/pciutils-2.1.11/README
/usr/share/doc/pciutils-2.1.11/pciutils.lsm
/usr/share/man/man8/lspci.8.bz2
/usr/share/man/man8/pcimodules.man.bz2
/usr/share/man/man8/setpci.8.bz2
/usr/share/pci.ids

La même commande ne donne rien si le paquetage n'est pas installé :

# urpme pciutils
désinstallation de pciutils-2.1.11-4mdk.i586
# rpm -q -l pciutils
package pciutils is not installed

Pour installer pciutils, il est possible d'utiliser la commande rpm -i :

# rpm -i pciutils
error: open of pciutils-2.1.11-4mdk.i586 failed: No such file or directory

Il faut indiquer où se trouve le paquetage :

# mount /mnt/cdrom
mount: périphérique de type bloc/dev/hdc est protégé en écriture, on le monte en lecture seulement
# rpm -i /mnt/cdrom/Mandrake/RPMS2/pciutils-2.1.11-4mdk.i586.rpm

Pour désinstaller le paquetage lspci :

# rpm -e pciutils

chercher

Pour lister tous les paquetages installés :

# rpm -q -a

Le naviguateur mozilla est installé sur mon système, mais je voudrais aussi le logiciel de messagerie qui va avec. Mais quel paquetage installer ?

planplan$ urpmq moz
Les paquetages suivants contiennent moz : 
mozilla
mozilla-dom-inspector
mozilla-enigmail
mozilla-enigmime
mozilla-irc
mozilla-js-debugger
mozilla-mail
mozilla-spellchecker
mozplugger
swfdec-mozilla

Il s'agit probablement de mozilla-mail .

mettre à jour le système

Pour savoir où aller chercher les paquetages,

urpmi s'appuie sur un fichier de configuration dans lequel sont listés tous les endroits où aller chercher les paquetages.

Pour une Mandrake 9.2 installée à partir des CD-ROM :

planplan# cat /etc/urpmi/urpmi.cfg 
Installation\ CD\ 1\ (x86)\ (cdrom1) removable://mnt/cdrom/Mandrake/RPMS {
  hdlist: hdlist.Installation CD 1 (x86) (cdrom1).cz
  with_hdlist: ../../Mandrake/base/hdlist1.cz
  key-ids: 70771ff3
  removable: /dev/cdrom
  update
}

Installation\ CD\ 2\ (x86)\ (cdrom2) removable://mnt/cdrom/Mandrake/RPMS2 {
  hdlist: hdlist.Installation CD 2 (x86) (cdrom2).cz
  with_hdlist: ../../Mandrake/base/hdlist2.cz
  key-ids: 70771ff3
  removable: /dev/cdrom
  update
}

International\ CD\ (x86)\ (cdrom3) removable://mnt/cdrom/Mandrake/RPMS3 {
  hdlist: hdlist.International CD (x86) (cdrom3).cz
  with_hdlist: ../../Mandrake/base/hdlist3.cz
  key-ids: 70771ff3
  removable: /dev/cdrom
  update
}

De temps à autre, la communauté des utilisateurs Linux découvrent des failles de sécurité dans tel ou tel paquetage. Les mises à jour ne tardent pas, et vous pouvez répercuter cela facilement sur votre système.

Utilisez urpmi.addmedia pour préciser où aller chercher les mises à jour :

urpmi.addmedia --update \
updates ftp://ftp.heanet.ie/mirrors/ftp.mandrake.com/Mandrakelinux/official/updates/10.0/RPMS \
with ../base/hdlist.cz

Comment j'ai trouvé ça ? Eh bien, ma boule de cristal est arrivée par la poste ce matin ;)

Sérieusement, j'ai cherché sur le net et trouvé un super outil en ligne (anglais) : http://easyurpmi.zarb.org/

Lancez la mise à jour :

urpmi --auto-select

Ignorer les dépendances

Voici un problème concret qui m'arrive à l'instant : je veux installer le gestionnaire de login graphique gdm . Manque de bol, urpmi veut installer beaucoup trop de paquetages à mon gout : 46 Mo en tout !

planplan# urpmi gdm
Pour satisfaire les dépendances, les paquetages suivants vont être installés (46 Mo):
GConf2-2.3.3-4mdk.i586
...
gdm-2.4.4.0-2mdk.i586
...
libxslt1-1.0.32-1mdk.i586
mandrake_desk-9.2-7mdk.noarch
mandrake_doc-common-9.2-0.4mdk.noarch
mandrake_theme-0.0.8-1mdk.noarch
netprofile-0.5.3-1mdk.noarch
scrollkeeper-0.3.12-4mdk.i586
sgml-common-0.6.3-8mdk.noarch
usermode-1.68-4mdk.i586
zenity-1.6-1mdk.i586
Est-ce correct ? (O/n) n

J'ai 3 CD-ROM (Mandrake), le paquetage gdm est probablement sur l'un d'eux.

Je teste avec le premier :

planplan# mount /mnt/cdrom/
mount: périphérique de type bloc/dev/hdc est protégé en écriture, on le monte en lecture seulement
find /mnt/cdrom | planplan# find /mnt/cdrom | grep gdm
/mnt/cdrom/Mandrake/RPMS3/gdm-Xnest-2.4.4.0-2mdk.i586.rpm

Ce n'est pas celui-là ! En effet, en regardant dans la liste ci-dessus, je vois gdm-2.4.4.0-2mdk.i586 .

Essayons avec le cd suivant :

planplan# umount /mnt/cdrom/
planplan# mount /mnt/cdrom/
mount: périphérique de type bloc/dev/hdc est protégé en écriture, on le monte en lecture seulement
planplan# find /mnt/cdrom | grep gdm
/mnt/cdrom/Mandrake/RPMS2/gdm-2.4.4.0-2mdk.i586.rpm

OK! Il est là. Je l'installe en ignorant les dépendances :

planplan# rpm -i --nodeps /mnt/cdrom/Mandrake/RPMS2/gdm-2.4.4.0-2mdk.i586.rpm

Et le tour est joué ! Si jamais je veux revenir en arrière, je peux faire un rpm -e gdm , mais gare à ne pas désinstaller d'autres paquets !

Je veux ensuite savoir quels sont les fichiers de configuration. Ils sont très certainement sous /etc :

planplan# rpm -q -l gdm | grep etc
/etc/X11/dm
/etc/X11/dm/Sessions
/etc/X11/gdm
/etc/X11/gdm/Init
...
/etc/pam.d/gdm
/etc/pam.d/gdm-autologin
/etc/pam.d/gdmsetup
/etc/security/console.apps/gdmsetup

ressources

Pour plus de précisions, vous pouvez consulter l'excellent article Introduction à urpmi de Guillaume Rousse : http://lis.snv.jussieu.fr/~rousse/linux/urpmi.html, et bien entendu les pages de manuel :

# man rpm
# man urpmi

paquetages Debian

Jean-Michel Oltra a traité cette partie, son travail se trouve ici : http://www.espinasse.net/linuxtarn/apt/apt.html

ressources

Correspondance entre Debian et Mandrake : http://linux.ensimag.fr/urpmiapt.html


$Id: informatique,v 1.15 2004/10/20 05:59:39 nico Exp $