L’arrivée de yum a grandement facilité la gestion des rpms, entre autre en gérant les dépendances. Il est maintenant possible de gérer proprement ses mises à jours, même si l’on prend des rpms dans divers repository
Quelques mots sur la configuration de base yum
Yum a été développé par l’Université de Duke. Pour une bonne introduction, rien de mieux que la documentation des auteurs.
Les fichiers de configuration sont /etc/yum.conf et des fichiers .repo dans le répertoire /etc/yum.repo.d. Souvent on trouvera un fichier .repo par repository [1].
Chaque fichier xxx.repo contient une ou plusieurs structures du type :
[NomDUneEntrée]
name=Fedora $releasever - $basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
enabled=1
Pour vérifier la source des packages que l’on installe, ceux-ci sont signés par une clef gpg fournie par le site du repository correspondant. Les paramètres de configuration y relatifs sont gpgcheck, mis à 1 pour exiger la vérification des signatures gpg et gpgkey référeçant l’emplacement du fichier de la clef gpg.
Pour une installation typique, les repositories base et update sont pris en compte (enabled=1), leurs noms variant suivant la distribution (RedHat, Fedora, CentOS...). Il n’en est pas de même d’autres repositories, par exemple les sources, car on ne souhaite pas les installer par défaut ce qui se traduite par enabled=0.
Il est toujours possible d’activer un repository au moment du lancement de yum :
yum --enable source list kernel*
Sélectionner des packages en dehors de sa distribution
Les motifs de vouloir prendre un rpm en dehors de sa distribution sont divers, le plus souvent parce qu’on ne trouve pas le logiciel dans sa distribution ou parce qu’on a besoin d’une version plus récente d’un logiciel. Il faudra rester attentif à la compatibilité. Personnellement, je n’installe que des rpms, uniquement avec yum, et n’utilise jamais l’option force. Par contre, le plugin de hiérarchie est la garantie de mise à jour cohérentes.
Pour Red Hat, Fedora, CentOS, etc., on trouvera des packages dans les repositories suivants :
Hiérarchie de répertoires de rpms
On va modifier la configuration de yum pour inclure divers repositories et les hiérarchiser [3].
yum install yum-prioritiesrpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpmrpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm/etc/yum/pluginconf.d/priorities.conf (enabled = 1).repo dans /etc/yum.repos.d/ pour ajouter une ligne priority = n par entrée :Comment ça marche ?
Pour un package donné, yum cherchera le repository contenant ce package qui a la plus basse priorité. Ainsi, lors d’une mise à jour, il n’ira pas installer un rpm de EPEL si celui-ci existe dans base ou update. Ce n’est que si un package donné n’existe que dans EPEL qu’il sera installé.
Ainsi les mise à jour cohérentes sont garanties.
[1] Dans ce contexte, on appelle repository un site web qui contient un ensemble de packages pour une version d’une distribution donnée.
[2] EPEL : Extra packages for EnterpriseLinux
[3] Une bonne référence pour l’utilisation sous CentOS : http://wiki.centos.org/Repositories/RPMForge
Cette création est mise à disposition sous contrat Creative Commons by-sa.