IMPORTANT !

  • Prenez le temps de lire la partie relative à la gestion de vos dépots multiples grace à yum-priorities au bas de cet article
  • Les fichiers de chaque dépôt se trouvent dans l'arborescence "/etc/yum.repos.d/"
  • La stabilité reconnue de CentOS implique de manipuler ces fichiers avec précaution



Quelques commandes utiles concernant les dépôts et "yum"


On commence par une petite astuce peu connue, il est possible de lister tout simplement les dépôts installés, activés (ou pas) via la commande:

# yum repolist all



On peut limiter la liste aux seuls dépôts activés:

# yum repolist all | grep enabled



Pour ne prendre en compte qu'un ou plusieurs dépôts lors d'une recherche ou d'une installation:

# yum search --disablerepo=*  --enablerepo=dépot1,dépot2   nom_du_paquet_recherché



Pour désactiver par défaut un dépôt en une seule ligne:

# sed -i 's/^enabled=1/enabled=0/' /etc/yum.repos.d/nom_du_fichier_concerné.repo



Pour prendre en compte ponctuellement un dépôt (installé mais désactivé par défaut) lors d'une recherche ou d'une installation:

# yum search --enablerepo=dépot_a_ajouter  nom_du_paquet_recherché



vérifiez à tout moment l'ordre prioritaire de votre config avec la commande (Merci à Jeanmy pour cette info):

# sed -n -e "/^[/h; /priority *=/{ G; s/\n/ /; s/ity=/ity = /; p }" /etc/yum.repos.d/*.repo | sort -k3n






Les dépots officiels CentOS


Avant de lister les dépôts dits "tiers", quelques mots sur les officiels, fournis par défaut avec votre distribution CentOS.

Indispensables pour obtenir une CentOS fonctionnelle et à jour, les dépots "Base", "Updates" et "extras" sont actifs par défaut.
Ils sont visibles dans le fichier de configuration original "/etc/yum.repos.d/CentOS-Base.repo".

  • L'absence de ligne "enabled=x" indique qu'ils sont activés
  • En cas de présence de ladite ligne, une valeur "0" correspond à "désactivé" et à l'opposé, une valeur à "1" correspond à "active"



Toujours dans ce même fichier, les dépôts officiels "Centosplus" et "Contrib" sont désactivés par défaut. Ils peuvent être appelés ponctuellement pour une recherche ou une installation avec une option de Yum:

# yum search --enablerepo=centosplus,contrib   nom_du_fichier_recherché


Pour reprendre les descriptifs du site officiel CentOS:

  • CentOS Plus :

Ce dépôt contient des applications qui changent quelques composants bases de CentOS. Il ne sera donc plus complètement compatible avec le contenu du 'Fournisseur en amond du système d'exploitation servant de référence' (comprendre RedHat). L'équipe de développement CentOS a fait des tests avec toutes les applications de ce dépôt, mais pas le 'Fournisseur en amond du système d'exploitation servant de référence'.

  • CentOS Contrib :

Ce dépôt contient des applications et paquets fournis par des utilisateurs tiers. Ces paquets ne seront pas ajoutés à la distribution dans une version ultérieure. En théorie, ces paquets ne devraient pas écraser partie ou totalité de ceux présents sur votre distribution.

  • CentOS Extras :

Ce dépôt comporte des applications qui donnent des fonctions supplémentaire sans changer la compatibilité du "Fournisseur en amond du système d'exploitation servant de référence" (bis: comprendre RedHat) et sans renouveler des composants de base. L'équipe de développement CentOS a fait des tests avec toutes les applications du dépôt, mais pas le "Fournisseur en amond du système d'exploitation servant de référence".
Quelques paquets appréciés dans ce dépôt: 'Horde', 'freenx', 'apt', 'XFCE' et 'yumex'.

Il est vivement déconseillé de passer les dépots "Centosplus" et "Contrib" en mode "activé" via le fichier "/etc/yum.repos.d/CentOS-Base.repo"
Ils entreraient de fait dans les alertes de mises à jour disponibles et pourraient générer des conflits avec vos logiciels et pilotes, voir un upgrade vers une version non stable de ces derniers.

  • CentOS Testing : un cas à part (à utiliser avec beaucoup de précautions)

Ce dépôt comporte des applications en cours de dev et qui seront déplacées, après finalisation et validation dans les dépôts 'CentOSPlus' ou 'CentOS Extras'. Ces applications ne sont pas à considérer comme stables ou terminées. L'équipe CentOS attend aussi des resultats via les personnes qui les utilisent, concernant la stabilité et la fonctionalité totale. Ce dépôt n'est pas présent par défaut, si toutefois vous souhaitez l'installer, créez le fichier (/etc/yum.repos.d/CentOS-Testing.repo) ci dessous:





Les principaux dépots non officiels pour CentOS


  • Rpmforge

Les dépôts Rpmforge (et repoforge) sont le fruit de la fusion de Dag et d'autres dépôts tiers moins diffusés. Ils incluent, entre autre, de nombreux binaires multimédia ou logiciels largement distribués (Wine, Vlc, mplayer, etc..). 5000 paquets sont annoncés comme disponibles sur ce dépôt.
Nous le considérons comme fiable (mais cela n'engage que nous), pour peu que le plug-in "yum-priorities" soit installé (voir plus bas).

La liste des paquets disponibles se trouve ici
Installer rpmforge pour CentOS 5
Installer rpmforge pour CentOS 6


  • ELRepo

logo_elrepo
ELRepo est sans conteste le dépot quasi incontournable pour installer des pilotes sur nos distributions à base de RedHat sans passer par une compilation manuelle.
Toutefois, si vous conservez ce dépot "actif" (recommandé si vous mettez à jour votre CentOS et votre kernel), prêtez une attention toute particulière à la disponibilité des binaires en lien avec votre kernel.

Exemple très simple avec le pilote kmod-nividia disponible via ce dépot. A chaque nouvelle version de Kernel, il est nécessaire d'installer le "kmod" associé. Or ce dernier n'est pas toujours disponible aussi rapidement que le kernel (généralement sous 48H).
Donc si vous utilisez un "kmod", vérifiez la dispo de la version correspondant au kernel avant de pousser ce dernier via l'outil de mise à jour.
A défaut, il vous faudra démarrer sur le kernel précédent via le menu grub (au tout début du start de votre CentOS) jusqu'à dispo et installation du nouveau "kmod"

Pour installer ELRepo:

importez la clef publique

# rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org


Installation sous CentOS 5.x

# rpm -Uvh http://elrepo.org/elrepo-release-5-4.el5.elrepo.noarch.rpm


Installation sous CentOS 6.x

# rpm -Uvh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm



Note: ELRepo propose également trois sous dépots (désactivés par défaut) qui peuvent être intéressants, à réserver toutefois aux initiés:

elrepo-extras
Le canal "elrepo-extras" qui propose paquets et dépendances souvent plus à jour que les versions officielles (CentOS-base)
Pour checker la dispo d'un logiciel sur ce dépot, ou pour l'installer, utilisez l'option suivante:

# yum --enablerepo=elrepo-extras  search  nom_ou_partie_de_nom_du_paquet


elrepo-testing
Le canal "elrepo-testing" qui propose les versions de test/dev en cours de finalisation (donc à utiliser avec prudence) Comme précédemment, pour checker ou installer:

# yum --enablerepo=elrepo-testing  search  nom_ou_partie_de_nom_du_paquet


elrepo-kernel
Le canal "elrepo-kernel", comme son nom l'indique, propose des versions de Kernel modifiées ou rétro-adaptées (implémentation de certains Kernels de Centos 6 vers CentOS 5 par exemple). A réserver aux "initiés" et aux situations particulières. Pour checker ou installer:

# yum --enablerepo=elrepo-kernel  search  kernel_ou_partie_de_version_kernel




  • Epel repo

logo_epel
Epel (Extra Packages for Enterprise Linux) est issu de la communauté Fedora. L'objectif étant d'apporter une plus value et des paquets complémentaires de qualité à RHEL et distros qui en découlent (CentOS, Scientific Linux, etc..)

De fait, de nombreux logiciels sont disponibles via ce dépôt que nous considérons comme fiable.
Soit nous le désactivons par défaut (donc installé si besoin mais pas actif), soit nous lui affectons une priorité moindre par rapport à RpmForge. Voir "yum-priorities" au bas de cette page.
Ceci principalement pour éviter tout conflit, les deux dépots proposant parfois des paquets pour les mêmes produits ou dépendances mais avec des versions différentes.

Pour installer Epel:
CentOS 5.x (32 et 64 bits), rendez vous sur cette page pour télécharger la dernière version
CentOS 6.x (32 et 64 bits), rendez vous sur cette page pour télécharger la dernière version

Pour rendre ce dépôt inactif par défaut en une seule ligne (root):

# sed -i 's/^enabled=1/enabled=0/' /etc/yum.repos.d/epel.repo



Si vous désactivez ce dépôt et voulez vérifier la dispo d'un paquet ou l'installer:

# yum --enablerepo=epel  search  nom_ou_partie_de_nom_du_paquet


# yum --enablerepo=epel  install  nom_ou_partie_de_nom_du_paquet



Plus d'infos sur ce dépot via leur site


  • RpmFusion

les dépôts RpmFusion sont maintenus par des volontaires issus des anciennes équipes de Dribble, Freshrpms, et Livna.
Ils proposent certains paquets jugés "non concluants" ou refusés par les équipes officielles de RedHat et/ou Fedora.
Les paquets rpmfusion se décomposent en deux branches, Free et non-Free (rien à voir avec le FAI) qui s'installent indépendamment.

Nous n'utilisons pas ce dépôt, en tout cas pas en production.
Notez qu'il faut installer le dépot "Epel" avant d'utiliser rpmfusion.

Plus d'infos sur le site rpmfusion
Vous trouverez les infos d'installation pour ce dépot sur ce lien



Gerez vos dépots avec "yum-priorities"


Le plugin "yum-priorities", comme son nom l'indique, permet d'affecter à chaque dépôt (et sous dépôt) une priorité par rapport aux autres via l'ajout d'une ligne "priority=x" dans chaque section de fichier xxx.repo
Il évite ainsi les conflits de version lorsqu'un même paquet est disponible sur deux dépôts différents.
Son installation est vivement conseillée, même si vous n'utilisez qu'un ou deux dépôts tiers sur votre CentOS

Pour installer "yum-priorities" sous CentOS 5.x

# yum install yum-priorities


Pour installer "yum-priorities" sous CentOS 6.x

# yum install yum-plugin-priorities



  • Exemples de configuration des fichiers *.repo (Exemple sous CENTOS 6.x)


Notez que l'exemple décrit comporte les dépôts officiels CentOS + ELRepo + Rpmforge + Epel (dans cet ordre pour ce qui est des priorités)
On considère que les valeurs de 1 à 10 sont à réserver aux "officiels" et aux drivers


Ici, on affecte la valeur prioritaire la plus haute aux dépôts de Base CentOS, indépendamment du fait qu'ils soient actifs ou pas.

# vi /etc/yum.repos.d/CentOS-Base.repo


# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=5

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=5



Ensuite, on passe aux dépôts tiers, en affectant une valeur supérieure (donc moins prioritaire) à ces paquets:

# vi /etc/yum.repos.d/elrepo.repo


### Name: ELRepo.org Community Enterprise Linux Repository for el6
### URL: http://elrepo.org/

[elrepo]
name=ELRepo.org Community Enterprise Linux Repository - el6
baseurl=http://elrepo.org/linux/elrepo/el6/$basearch/
mirrorlist=http://elrepo.org/mirrors-elrepo.el6
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0
priority=7

[elrepo-testing]
name=ELRepo.org Community Enterprise Linux Testing Repository - el6
baseurl=http://elrepo.org/linux/testing/el6/$basearch/
mirrorlist=http://elrepo.org/mirrors-elrepo-testing.el6
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0
priority=7

[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository - el6
baseurl=http://elrepo.org/linux/kernel/el6/$basearch/
mirrorlist=http://elrepo.org/mirrors-elrepo-kernel.el6
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0
priority=7

[elrepo-extras]
name=ELRepo.org Community Enterprise Linux Extras Repository - el6
baseurl=http://elrepo.org/linux/extras/el6/$basearch/
mirrorlist=http://elrepo.org/mirrors-elrepo-extras.el6
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0
priority=7




# vi /etc/yum.repos.d/rpmforge.repo


### Name: RPMforge RPM Repository for RHEL 6 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority = 11

[rpmforge-extras]
name = RHEL $releasever - RPMforge.net - extras
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority = 11

[rpmforge-testing]
name = RHEL $releasever - RPMforge.net - testing
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-testing
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority = 11



# vi /etc/yum.repos.d/epel.repo


[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
priority=15

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
priority=15

[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
priority=15



Notez bien que nous avons donné à Epel une priorité moindre (par rapport à Rpmforge notamment), dans notre cas pour éviter un conflit relatif à des dépendances présentes sur les deux dépôts (exemple celles utilisées par VLC).
Vérifiez que cela convient à votre situation et adaptez en conséquence l'ordre de priorité de vos dépôts

Enfin, vérifiez à tout moment l'ordre prioritaire de votre config avec la commande:

# sed -n -e "/^[/h; /priority *=/{ G; s/\n/ /; s/ity=/ity = /; p }" /etc/yum.repos.d/*.repo | sort -k3n





Accélérez vos téléchargements "yum" avec le plug-in "fastestmirror"


Notez que ce plugin est normalement installé par défaut sous CentOS 6.x si vous avez choisi une version standard (non minimale).
Il effectue un contrôle des différents miroirs (de chaque dépôt) et utilise le plus rapide parmis ceux qui sont disponibles.

Pour l'installer (ou vérifier qu'il est bien présent):
Sous CentOS 5.x

# yum install yum-fastestmirror


Sous CentOS 6.x

# yum install yum-plugin-fastestmirror



Note: Si vous utilisez un proxy (tel que squid) pour vos accès à Internet et que vous rencontrez des lenteurs dans vos updates ou installations via "yum", essayez en désactivant "fastestmirror" via son fichier de configuration (en root).
Il suffit de passer la ligne "enabled" à la valeur "0":

# vi /etc/yum/pluginconf.d/fastestmirror.conf


[main]
enabled=1
verbose=0
always_print_best_host = true
socket_timeout=3
#  Relative paths are relative to the cachedir (and so works for users as well
# as root).
hostfilepath=timedhosts.txt
maxhostfileage=10
maxthreads=15
#exclude=.gov, facebook
#include_only=.nl,.de,.uk,.ie






Vous pouvez commenter ou participer à l'amélioration de cet article via le topic dédié du forum.