Configurer les dépôts Yum sous CentOS

Configurer les dépôts Yum sous CentOS

24 octobre 2019 Non Par admin

Les dépôts ou archives de téléchargement, ce sont les endroits (sites Internet ou locaux) à partir desquels Yum télécharge les logiciels et leurs mises à jour. On pourrait également utiliser le terme plus explicite de source de téléchargement. Cet article propose un aperçu sommaire sur les dépôts de paquets Yum, en distinguant notamment les dépôts officiels et leurs rôles respectifs, ainsi que les dépôts tiers les plus usuels et leur configuration.

Où est-ce que ça se configure ?

Dans les premières versions de Yum, toute la configuration s’effectuait dans un seul fichier /etc/yum.conf. Par la suite, la configuration a été répartie dans des fichiers à part pour des raisons de lisibilité. Ces fichiers *.repo se trouvent dans le répertoire /etc/yum.repos.d. L’extensions *.repo est une convention qui indique qu’il s’agit d’un repository, c’est-à-dire d’un dépôt.

Les dépôts officiels de la distribution

Jetons un coup d’oeil sur le fichier /etc/yum.repos.d/CentOS-Base.repo. Le fichier est constitué d’un commentaire initial et d’une série de quatre stances qui suivent toutes le même schéma.

Dépôts officiels Yum

Ici comme ailleurs, les lignes commençant par un dièse # sont des commentaires et n’ont aucune incidence “technique” sur le fichier. S’il ne s’agit pas de commentaires à proprement parler, les lignes commençant par # sont donc des lignes de commande désactivées ou “commentées”.

Chacune des quatre stances commence par le nom de l’archive correspondante entre crochets : [base], [updates], [extras] et [centosplus]. Voici un petit synopsis qui explique brièvement à quoi correspond chacune de ces sources de téléchargement.

  • [base] : les paquetages de base de CentOS, tels qu’on les trouve dans les ISO, le DVD ou les CD.
  • [updates] : les mises à jour de [base] publiées après les ISO de CentOS. Il s’agit de mises à jour de sécurité, de corrections de bugs ou d’améliorations de paquetages de [base].
  • [extras] : les paquetages non compris dans Red Hat Enterprise Linux, compilés et gérés par l’équipe de CentOS, et qui ajoutent certaines fonctionnalités à la distribution de base. L’ensemble de ces paquetages est dûment testé et n’interfère pas avec la distribution de base.
  • [centosplus] : les paquetages provenant de la contribution des développeurs et des utilisateurs de CentOS, mais susceptibles de remplacer des paquetages de [base].

Les quatre stances du fichier CentOS-Base.repo s’organisent suivant la même structure. La ligne commençant par name contient le nom de l’archive de téléchargement. Les anciennes versions de CentOS utilisaient baseurl pour définir l’URL de l’archive correspondante. Depuis les versions 5.x, la ligne contenant baseurl est commentée, et c’est la ligne mirrorlist qui pointe vers une liste de sites miroirs, afin de ne pas trop solliciter les serveurs de centos.org. L’option gpgcheck=1 signifie à Yum de procéder à la vérification de la signature des paquets avant l’installation. Quant aux différents paramètres comme $releasever ou $basearch, il s’agit de variables qui renseignent sur la version de CentOS et sur l’architecture du processeur pour lequel le système a été compilé.

CentOS, le parent pauvre des distributions ?

Dans sa configuration par défaut, la distribution CentOS offre un nombre relativement réduit de paquetages. L’archive [base], par exemple, contient actuellement un peu moins de 10.000 paquetages. Ce n’est pas beaucoup, surtout si l’on regarde du côté des distributions comme Ubuntu, Debian, openSUSE ou Fedora, qui en proposent jusqu’à cinq ou six fois plus. Est-ce que cela signifie que CentOS est un parent pauvre et que nous aurions mieux fait de porter notre choix sur une autre distribution ? Non, pas vraiment.

CentOS est un Enterprise Linux, et une des particularités d’une telle distribution à usage professionnel, c’est qu’elle offre un nombre restreint de paquetages tout en apportant un soin particulier à la cohérence et à la stabilité de l’ensemble. Sur un poste de travail, vous aurez donc un système de base extrêmement solide, un serveur graphique sans surprises, un bureau GNOME ou KDE très propre et une poignée d’applications bien soignées et bien intégrées qui vous permettront de travailler de façon productive : suite bureautique, navigateur web, client mail, visionneuse d’images, etc. Côté multimédia, le choix est plutôt restreint, et les jeux, n’en parlons pas. Ce qui ne veut pas dire que nous devrons nous en priver.

Paquetages à gogo !

Pour obtenir des applications autres que celles proposées directement par CentOS, la solution consiste tout simplement à configurer l’un des nombreux third party repositories, les archives de téléchargement entretenues par des tiers. N’oublions pas que Red Hat Enterprise Linux provient directement de la distribution Fedora. On peut très bien considérer que Fedora constitue une version de développement de Red Hat Enterprise Linux, et inversement, que Red Hat Enterprise Linux représente une “Fedora stabilisée”, mais qui ne contient qu’un nombre limité de paquetages de cette dernière.

Les sources de téléchargement CentOS entretenues par des tiers contiennent ainsi pour la plupart des paquetages de Fedora recompilés pour CentOS. Elles présentent toutes un avantage en même temps qu’un désavantage. Elles mettent à disposition un nombre important de paquetages, mais la plupart de ces archives ne préservent pas l’intégrité de votre système. Concrètement, l’utilisation d’une seule de ces archives peut facilement multiplier par deux le nombre de paquetages disponibles pour votre système, mais en contrepartie, l’installation de certains de ces paquetages forcera la mise à jour de certains paquetages du système de base. Cela ne veut pas dire que votre système plantera, mais le système de base ultra-stable CentOS contiendra désormais des composants qui n’ont pas été aussi dûment testés.

Une solution élégante à ce dilemme consiste tout simplement à définir des priorités pour Yum. Concrètement, il suffit de configurer une source de téléchargement tierce tout en indiquant au système : attention, interdiction d’installer des paquetages qui risquent de remplacer des composants du système de base. Cela a l’air compliqué en théorie, mais dans la pratique, c’est extrêmement simple, comme vous allez le voir tout de suite.

Protéger le système de base avec Yum-Priorities

Avant d’aller plus loin dans la configuration des archives, nous allons installer une extension pour Yum, le plug-in (ou “greffon”) Yum-Priorities.

# yum install yum-plugin-priorities

Cette extension permet de définir des prioritiés pour les différentes archives de téléchargement. Il suffit de définir une variable priority=N, avec N compris entre 1 et 99, 1 représentant la priorité la plus haute et 99 la plus basse. Concrètement, si vous avez défini une priorité de 1 pour les dépôts [base], [updates] et [extras] et une priorité de 10 (ou 30, ou 99, peu importe) pour les dépôts tiers que nous verrons un peu plus loin, les paquetages de ces derniers ne pourront jamais remplacer les paquetages de base. Yum les en empêchera tout simplement, en les excluant de la liste.

Configurer les dépôts de paquets officiels

Éditer /etc/yum.repos.d/CentOS-Base.repo et activer les dépôts [base], [updates] et [extras] avec une priorité maximale.

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

[base]

enabled=1 priority=1 name=CentOS-$releasever – Base …

[updates]

enabled=1 priority=1 name=CentOS-$releasever – Updates …

[extras]

enabled=1 priority=1 name=CentOS-$releasever – Extras …

Laisser le dépôt [centosplus] désactivé.

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

[centosplus]

enabled=0 name=CentOS-$releasever – Plus …

Configurer le dépôt CR

Le dépôt CR (Continuous Release) permet d’obtenir les dernières mises à jour et de migrer en douceur vers la prochaine version mineure de CentOS avant la sortie de l’ISO officiel. Pour ma part, j’aime bien utiliser ce dépôt, qui m’évite de me retrouver avec un tsunami de mises à jour lors du passage à une nouvelle version mineure de CentOS.

La commande yum-config-manager fournie par le paquet yum-utils permet d’activer ce dépôt.

# yum-config-manager --enable cr

Éditer le fichier /etc/yum.repos.d/CentOS-CR.repo en définissant la même priorité que pour les dépôts officiels.

[cr]
enabled=1
priority=1
name=CentOS-$releasever - cr
baseurl=http://mirror.centos.org/centos/$releasever/cr/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Configurer le dépôt tiers EPEL

Le dépôt tiers EPEL (Extra Packages for Enterprise Linux) fournit des paquets qui ne sont pas inclus dans la distribution CentOS. Une fois que le dépôt officiel [extras] est configuré, le dépôt EPEL peut se configurer très simplement à l’aide du paquet correspondant.

# yum install epel-release

Définir les priorités du dépôt EPEL.

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

[epel]

enabled=1 priority=10 name=Extra Packages for Enterprise Linux 7 – $basearch …

[epel-debuginfo]

enabled=0 name=Extra Packages for Enterprise Linux 7 – $basearch – Debug …

[epel-source]

enabled=0 name=Extra Packages for Enterprise Linux 7 – $basearch – Source …

Activer les priorités

Si vous n’avez pas déjà installé le plug-in Yum-Priorities, faites-le maintenant.

# yum install yum-plugin-priorities

Vérifiez s’il fonctionne correctement.

# yum check-update
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: mirror.plusserver.com
 * epel: mirrors.neterra.net
 * extras: centos.mirror.ate.info
 * updates: mirrors.ircam.fr
125 packages excluded due to repository priority protections

Configurer le dépôt tiers Nux-Dextop

Le dépôt tiers Nux-Dextop fournit des paquets orientés poste de travail et multimédia. Il a besoin du dépôt EPEL pour fonctionner correctement.

Aller sur le site du projet, naviguer vers le répertoire nux/dextop/el7/x86_64/, télécharger et installer le paquet nux-dextop-release.

# yum localinstall nux-dextop-release-*.rpm

Activer le dépôt [nux-dextop] avec une priorité de 10.

# /etc/yum.repos.d/nux-dextop.repo

[nux-dextop]

name=Nux.Ro RPMs for general desktop use baseurl=http://li.nux.ro/download/nux/dextop/el7/$basearch/ enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-nux.ro protect=0

Laisser le dépôt [nux-dextop-testing] désactivé, en lui attribuant une priorité de 10.

# /etc/yum.repos.d/nux-dextop.repo

[nux-dextop-testing]

name=Nux.Ro RPMs for general desktop use – testing baseurl=http://li.nux.ro/download/nux/dextop-testing/el7/$basearch/ enabled=0 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-nux.ro protect=0

Configurer le dépôt tiers Adobe

Ce dépôt nous servira uniquement pour le plugin Macromedia Flash.

  1. Aller sur le site d’Adobe.
  2. Tout en bas de la page d’accueil, suivre le lien Flash Player.
  3. Sur la page de sélection, choisir le système d’exploitation (Linux 64-bit) et la version (Flash Player YUM).
  4. Télécharger le paquet adobe-release et installer ce paquet.
# yum localinstall adobe-release-*.rpm

Configurer le dépôt [adobe-linux-x86_64] avec une priorité de 10 :

# /etc/yum.repos.d/adobe-linux-x86_64.repo

[adobe-linux-x86_64]

name=Adobe Systems Incorporated baseurl=http://linuxdownload.adobe.com/linux/x86_64/ enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux

Configurer le dépôt tiers ELRepo

Le dépôt ELRepo est un autre dépôt tiers pour CentOS, qui se concentre sur les drivers.

  • systèmes de fichiers
  • cartes graphiques
  • cartes réseau
  • cartes son
  • webcams
  • etc.

Aller sur le site du projet, télécharger et installer le paquet elrepo-release pour les versions 7.x.

# yum localinstall elrepo-release-*.rpm

Désactiver l’ensemble des dépôts [elrepo].

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

[elrepo]

enabled=0

[elrepo-testing]

enabled=0

[elrepo-kernel]

enabled=0

[elrepo-extras]

enabled=0

On activera ce dépôt ponctuellement en cas de besoin.

# yum --enablerepo=elrepo install nvidia-detect

@Source: https://blog.microlinux.fr/yum-config/