Fedora Workstation et Serveur

Fedora : Fixer un dépôt spécifique pour DNF

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction



Par défaut, dans Fedora, lors de la recherche de mises à jour ou installation de logiciels, le système va prendre un miroir dans une liste prédéfinie.
Vous pouvez, en modifiant DNF, rechercher automatiquement le miroir le plus rapide.
Cependant, le système va rescanner cette liste régulièrement.

Nous allons voir ici comment fixer un miroir spécifique dans notre configuration.

Attention, si le miroir n'est pas disponible au moment où vous installez des paquets, vous serez bloqué (bon, ça c'est le cas quelque soit le miroir et le système)

Cependant, cela peut être utile pour fixer un miroir local si vous en avez un dans votre entreprise (ou votre réseau).

Lister les miroirs disponibles



Il est possible d'aller vérifier la liste des miroirs disponibles directement sur le site de Fedora à l'adresse suivante : https://admin.fedoraproject.org/mirrormanager/

Pour chacun d'entre eux, vous avez sa localisation (code du pays comme FR, DE, ...) , son protocole (HTTP, HTTPS, FTP, RSYNC), et sa vitesse en MBps (10000 signifie 10GBps)

On va prendre dans cet exemple : mirror.in2p3.fr un miroir Français (FR) de 20GBps (20000) disponible en HTTPS.
Le lien HTTPS renvoie vers https://mirror.in2p3.fr/pub/fedora/linux/

On remarque l'arborescence classique chez Fedora (releases, updates), puis la version, puis Everything, puis l'architecture, puis Packages.

Modifier les miroirs



Les miroirs sont identifiés dans les fichiers .repo dans /etc/yum.repos.d :

Code BASH :
fedora-cisco-openh264.repo
fedora-modular.repo
fedora.repo
fedora-updates-modular.repo
fedora-updates.repo
fedora-updates-testing-modular.repo
fedora-updates-testing.repo
 


Pour fedora.repo, voici la structure de la déclaration d'un dépôt :

Code BASH :
[fedora]
name=Fedora $releasever - $basearch
#baseurl=http://download.example/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
countme=1
metadata_expire=7d
repo_gpgcheck=0
type=rpm
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False


Le but sera de :
- Commenter la ligne metalink
- Décommenter #baseurl
- Indiquer un bon miroir

Pour cela, on va exécuter 3 commandes sed :

La première pour commenter metalink :
Code BASH :
sed -e 's/^metalink/#metalink/g' -i /etc/yum.repos.d/fedora{,-modular*,-updates*}.repo


La deuxième pour décommenter le baseurl :
Code BASH :
sed -e 's/^#baseurl/baseurl/g' -i /etc/yum.repos.d/fedora{,-modular*,-updates*}.repo


La troisième pour remplacer http://download.example/pub par https://mirror.in2p3.fr/pub (dans ce cas j'utilise l'arobase comme séparateur à la place de la barre oblique)
Code BASH :
sed -e 's@http://download.example/pub@https://mirror.in2p3.fr/pub@g' -i /etc/yum.repos.d/fedora{,-modular*,-updates*}.repo


Et maintenant, c'est réglé, on est fixé sur le miroir précédemment défini.

On vide le cache dnf :

Code BASH :
dnf clean all


Et on peut vérifier en faisant un check des mises à jour, que les dépôts se synchronisent bien :

Code BASH :
dnf check-update


Revenir à la sélection automatique



Si besoin, pour revenir à l'étape d'avant, il suffit juste de :
- Commenter la ligne baseurl
- Décommenter #metalink

Pour cela, on va exécuter 2 commandes sed :

La première pour commenter baseurl :
Code BASH :
sed -e 's/^baseurl/#baseurl/g' -i /etc/yum.repos.d/fedora{,-modular*,-updates*}.repo


La deuxième pour décommenter le metalink :
Code BASH :
sed -e 's/^#metalink/metalink/g' -i /etc/yum.repos.d/fedora{,-modular*,-updates*}.repo


Et voilà