Ajouter un dépôt

Au sommaire:

  • 1-Ajouter un dépôt supporté
  • 2-Ajouter un dépôt non supporté

1-Ajouter un dépôt supporté

Tapez la commande suivante pour voir si le dépôt redhat.repo est bien ajouté suite à la souscription du système.

[sussudio@rhel9 ~]$ sudo ls /etc/yum.repos.d
redhat.repo
[sussudio@rhel9 ~]$

On vois que c'est bien le cas.

La commande "dnf repolist --all" permet de vérifier la liste des dépôts activés ou désactivés dans le système de manière lisible.

dnf repolist --all

Vous constaterez que seul deux dépôts sont activés, "BaseOS" et "AppStream".

rhel-9-for-x86_64-appstream-rpms                                           Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)                                                                  enabled
rhel-9-for-x86_64-baseos-rpms                                              Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)                                                                     enabled

Installez nano.

sudo dnf install nano -y

Et vérifiez le contenu du fichier /etc/yum.repos.d/redhat.repo avec la commande suivante.

sudo nano /etc/yum.repos.d/redhat.repo

La liste étant trop longue, faites un Ctrl+w et tapez "baseos-rpms".

Nous allons voir ensemble la signification de chacune de ces sections :

  • name = le nom complet du dépôt.
  • baseurl = l'adresse web du dépôt. Peut-être remplacé par une adresse en HTTP, FTP ou NFS si besoin (pour les organisations qui souhaitent avoir une copie miroir et économiser de la bande passante).
  • enabled = indique si le dépôt est activé ou non (1 pour activé, 0 pour désactivé).
  • gpgcheck = si 1, indique que les paquets seront vérifiés à l'aide de leur signature gpg.
  • gpgkey = la clé gpg publique pour vérifier les paquets.
  • sslverify = si 1, cela indique que le système est bien abonné au CDN (Content Delivery Network).
  • sslcacert = certificat utilisé comme autorité de certification (Certificate Authority) pour valider les certificats clients (sslclientkey).
  • sslclientkey = clé client utilisée pour habiliter le certificat client.
  • sslclientcert = certificat client que la machine utilisera pour s'identifier auprès du CDN.
  • metadata_expire = le temps en secondes après lequel les métadonnées sont considérés comme obsolète (24h par défaut).
  • enabled_metadata = permet à d'autres outils d'utiliser les métadonnées téléchargées dans ce dépôt.

Ça va pas nous servir dans la vie de tout les jours mais c'est toujours bon à savoir pour la culture personnelle.

La liste étant trop longue, il est possible de chercher uniquement les dépôts qui nous intéresse avec la commande grep. On va chercher les dépôts avec le mot clé “supplementary”.

[nagib@rhel9-server ~]$ sudo dnf repolist --all | grep supplementary
rhel-9-for-x86_64-supplementary-debug-rpms           Red Hat Enterprise disabled
rhel-9-for-x86_64-supplementary-eus-debug-rpms       Red Hat Enterprise disabled
rhel-9-for-x86_64-supplementary-eus-rpms             Red Hat Enterprise disabled
rhel-9-for-x86_64-supplementary-eus-source-rpms      Red Hat Enterprise disabled
rhel-9-for-x86_64-supplementary-rpms                 Red Hat Enterprise disabled
rhel-9-for-x86_64-supplementary-source-rpms          Red Hat Enterprise disabled
[nagib@rhel9-server ~]$

Les dépôts "supplementary" comme son nom l'indique contiennent des paquets supplémentaires.

Ils sont sous licence propriétaire et non inclus dans le dépôt standard de Red Hat.

Enfin, ils ne sont pas pris en charge par le support.

Chapter 4. The Supplementary repository Red Hat Enterprise Linux 8 | Red Hat Customer Portal
Access Red Hat’s knowledge, guidance, and support through your subscription.

Il existe quatre type de dépôt dans RHEL :

  • Regular channels: des paquets au format rpms qui sont prêts à être installé sur le système (rhel-9-for-x86_64-supplementary-rpms).
  • Extended update support (EUS) : les mises à jours de paquets pour un support étendus souscrit par les entreprises (rhel-9-for-x86_64-supplementary-eus-rpms).
  • Source channels: les sources des paquets (rhel-9-for-x86_64-supplementary-source-rpms).
  • Debug channels: contient les informations de débogage générées lors de la construction d'un paquet pour les type "Regula channels" et "EUS". Utiles pour le dépannage (rhel-8-for-x86_64-supplementary-eus-debug-rpms ou rhel-9-for-x86_64-supplementary-debug-rpms).

Pour installer le dépôt "rhel-9-for-x86_64-supplementary-rpms", tapez la commande suivante sur votre terminal.

[sussudio@rhel9 ~]$ sudo dnf config-manager --enable rhel-9-for-x86_64-supplementary-rpms
[sudo] password for sussudio: 
Updating Subscription Management repositories.
[sussudio@rhel9 ~]$

Ensuite, affichez la liste des dépôts et vous verrez que "supplementary-rpms" fait bien parti de la liste.

[nagib@rhel9 ~]$ sudo dnf repolist
Updating Subscription Management repositories.
repo id                                    repo name
rhel-9-for-x86_64-appstream-rpms           Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)
rhel-9-for-x86_64-baseos-rpms              Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)
rhel-9-for-x86_64-supplementary-rpms       Red Hat Enterprise Linux 9 for x86_64 - Supplementary (RPMs)
[nagib@rhel9 ~]$ 

2-Ajouter un dépôt non supporté

Dans la partie précédente, vous avez ajouté en une simple ligne de commande un dépôt parmi ceux proposés par Red Hat.

Tentez désormais d'en ajouter un manuellement comme le dépôt EPEL pour "Extra Packages for Enterprise Linux".

C'est un dépôt non supporté qui est utilisé par Fedora, une distribution sponsorisé par Red Hat qui sert à tester les dernières nouveautés avant d'être intégré à RHEL (vous comprenez pourquoi il n'y a aucun support).

La liste des miroirs se trouve à cette adresse :

Mirrors - MirrorManager

Ajoutez le dépôt avec la commande suivante (le miroir est celui du CNRS qui dispose d'une excellente bande passante).

[sussudio@rhel9 ~]$ sudo dnf config-manager --add-repo="http://mirror.in2p3.fr/pub/epel/9/Everything/x86_64/"
Updating Subscription Management repositories.
Adding repo from: http://mirror.in2p3.fr/pub/epel/9/Everything/x86_64/
[sussudio@rhel9 ~]$ 

Vérifiez le contenu du dépôt dans /etc/yum.repos.d/ et vous allez remarquer qu'il y a des sections manquantes.

[sussudio@rhel9-server yum.repos.d]$ cat /etc/yum.repos.d/mirror.in2p3.fr_pub_epel_9_Everything_x86_64_.repo
[mirror.in2p3.fr_pub_epel_9_Everything_x86_64_]
name=created by dnf config-manager from http://mirror.in2p3.fr/pub/epel/9/Everything/x86_64/
baseurl=http://mirror.in2p3.fr/pub/epel/9/Everything/x86_64/
enabled=1
[nagib@rhel9-server yum.repos.d]$

Le dépôt a bien été ajouté mais il manque la clé gpg pour vérifier les paquets.

À titre de test, on va tenter d'installer le paquet "screen" qui se trouve uniquement dans ce dépôt.

On constate un message d'erreur lié aux clés gpg.

Traduction : Mise à jour des référentiels de gestion des abonnements.

Vous avez activé la vérification des paquets via les clés GPG. C'est une bonne chose. Cependant, vous n'avez pas de clés publiques GPG installées. Vous devez télécharger les clés des paquets que vous souhaitez installer et les installer.
Vous pouvez le faire en exécutant la commande rpm --import public.gpg.key

Vous pouvez également indiquer l'url de la clé que vous souhaitez utiliser
pour un référentiel dans l'option 'gpgkey' dans la section d'un référentiel et DNF
l'installera pour vous.

Pour plus d'informations, contactez votre distribution ou votre fournisseur de paquets.

La raison de ce message est qu'il n'y a aucune clé publique ajouté pour ce dépôt.

Le paquet est conservé en cache jusqu'à l'installation de la clé publique.

Il vous faut récupérer la clé publique avec la commande curl (mettez vous en compte root avec "sudo su") et l'ajouter dans /etc/pki/rpm-gpg/.

[root@rhel9 sussudio]# curl -s http://mirror.in2p3.fr/pub/epel/RPM-GPG-KEY-EPEL-9 > /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
[root@rhel9 sussudio]#

Enfin, vérifiez avec la commande "head" que la clé gpg a bien été copié.

[sussudio@rhel9 ~]$ head /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGE3mOsBEACsU+XwJWDJVkItBaugXhXIIkb9oe+7aadELuVo0kBmc3HXt/Yp
CJW9hHEiGZ6z2jwgPqyJjZhCvcAWvgzKcvqE+9i0NItV1rzfxrBe2BtUtZmVcuE6
2b+SPfxQ2Hr8llaawRjt8BCFX/ZzM4/1Qk+EzlfTcEcpkMf6wdO7kD6ulBk/tbsW
DHX2lNcxszTf+XP9HXHWJlA2xBfP+Dk4gl4DnO2Y1xR0OSywE/QtvEbN5cY94ieu
n7CBy29AleMhmbnx9pw3NyxcFIAsEZHJoU4ZW9ulAJ/ogttSyAWeacW7eJGW31/Z
39cS+I4KXJgeGRI20RmpqfH0tuT+X5Da59YpjYxkbhSK3HYBVnNPhoJFUc2j5iKy
XLgkapu1xRnEJhw05kr4LCbud0NTvfecqSqa+59kuVc+zWmfTnGTYc0PXZ6Oa3rK
44UOmE6eAT5zd/ToleDO0VesN+EO7CXfRsm7HWGpABF5wNK3vIEF2uRr2VJMvgqS
[nagib@rhel9 ~]$

On ajoute le chemin de la clé gpg dans le fichier du dépôt en ajoutant la section "gpgkey".

En installant de nouveau le paquet "screen", on constate qu'avec l'ajout de la clé publique, il n'y a plus de message d'erreur.

Sources:

Red Hat Enterprise Linux 8 Administration | Packt
Develop the skills to manage and administer Red Hat Enterprise Linux and get ready to earn the RHCSA certification