Vous êtes sur la page 1sur 11

DNF le gestionnaire de paquets de Fedora

Introduction
DNF (Dandified Yum), est le nouveau gestionnaire de paquets pour les distributions basées
sur « RPM » (RPM Package Manager). Conçu de sorte à rester très proche de Yum à
l'usage, il n'en reste pas moins un tout nouvel outil nettement plus performant, doté de
fonctions de gestions et de résolutions des dépendances beaucoup plus avancées (librairie
libsolv + API Hawkey). Disponible depuis Fedora 18, DNF est le gestionnaire de paquet par
défaut depuis Fedora 22. Les gestionnaires de paquet ont toujours été une composante
primordiale des distributions Gnu\Linux, de sorte que cette nouvelle édition de yum permet
de poser des bases solides qui serviront à ancrer le futur de Fedora.

2Configuration de DNF
L'essentiel des options de configuration de DNF se font dans le fichier /etc/dnf/dnf.conf. Vous êtes
libre de les éditer manuellement (expert) ou d'utiliser le plugin config-manager.

2.1Gestion des dépôts


Pour le moment, Fedora 22, les dépôts sont configurés dans le dossier /etc/yum.repos.d/, mais dans
un future proche ils seront directement configurés dans le fichier /etc/dnf/dnf.conf.

2.1.1Ajout d'un dépôt


L'ajout automatisé d'un dépôt est le mode d'installation le plus fiable et le plus simple, mais surtout la
méthode conseillée :

# dnf install --nogpgcheck http://adresse-du-repos.com/repos.rpm

L'ajout manuelle est désormais très peu utilisé. En tant qu'administrateur éditer ou créer un fichier nom-du-
dépôt.repo dans le répertoire /etc/yum.repos.d/ dont voici la structure :

[nom-du-depôt]
name=Le nom du dépôt $releasever - $basearch
baseurl=http://adresse-du-dépôt.com/fedora/$releasever/$basearch/
mirrorlist=http://adresse-du-miroire.com/fedora/$releasever/
enabled=1
gpgcheck=1
gpgkey=http://adresse-de-la-clés-gpg/RPM-GPG-KEY-nomdudépôt

Prochaine version de fedora (>F22)


Cette méthode ne sera probablement plus compatible avec les prochaines versions de
Fedora, DNF regroupe les informations de configuration dans un seul fichier
(/etc/dnf/dnf.conf), par conséquent les dépôts seront ajoutés à ce fichier. De plus les
paramètres de configuration du fichier dnf.conf sont prioritaires.
Attention !
L'option includepkgs de YUM est désormais nommée include . Quelques bugs ont été rapportés avec
cette option, donc si vous constatez que l'option est ignorée , vous devrez déplacer la configuration du
dépôt dans la partie [main] du fichier de configuration de DNF; /etc/dnf/dnf.conf

L'Ajout avec config-manager est pour le moment dépréciée puisqu'elle édite le


fichier /etc/dnf/dnf.conf, or il n'est pour le moment pas souhaitable d'éditer ce fichier :

# dnf config-manager --add-repo http://exemple.com/fedora/dépôt.repo

ou encore:

# dnf config-manager --add-repo http://exemple.com/fedora/

2.1.2Activer et désactiver un dépôt


Méthode manuelle Pour activer ou désactiver un dépôt de manière permanente, en tant qu'administrateur
éditer le fichier nom-du-dépôt.repo dans le répertoire /etc/yum.repos.d/ et modifier la valeur associée
à enabled :

 enabled=0, désactive le dépôt.


 enabled=1, active le dépôt.
Méthode config-manager Pour activer un dépôt de manière permanente:

# dnf config-manager --set-enabled nom-du-dépôt

Pour désactiver un dépôt de manière permanente:

# dnf config-manager --set-disabled nom-du-dépôt

2.2Les dépôts

2.2.1Les dépôts natifs


Les dépôts natifs sont installés de base avec votre système et sont indispensables :

 Dépôt fedora : les RPM fournis avec la distribution


 Dépôt updates-released : les mises à jour officielles

2.2.2Les dépôts officiels


Les dépôts officiels doivent êtres ajoutés manuellement et vous offre un catalogue étendu de pilotes
matériels et de logiciels (libre mais aussi non-libre):

 Dépôt RPM Fusion : indispensable pour les pilotes matériels et le multimédia


 Dépôt adobe : pour Macromedia Flash Player (lecteur flash propriétaire)
2.2.3Les dépôts particuliers
Les dépôt particuliers fournissent des fonctions très élaborés destinées à des usages bien spécifiques :

 Dépôt remi : dépôt spécialisé LAMP (Linux Apache Mysql PHP)


Un seul est actuellement encore présent car les précédents ne sont plus d'actualité.

2.3Les Extensions

2.3.1Config-manager
Dnf est installé avec un plugin de configuration avancée très performant : dnf config-manager, vous
permettant :

 Ajouter un dépôt

# dnf config-manager --add-repo <url_dépôt>.repo

 Désactiver ou Activer un dépôt

# dnf config-manager --set-enabled <dépôt>


# dnf config-manager --set-disabled <dépôt>

 Configurer un proxy

# dnf config-manager --setopt proxy=http://proxy.example.com:3128/ <dépôt1>


<dépôt2> --save

 Consulter votre configuration globale et pour un dépôt

# dnf config-manager --dump


# dnf config-manager <dépôt> --dump

2.3.2Protected-packages
Contrairement à yum, dnf intègre de base le plugin Protected-packages, qui empêche la suppression de
certain paquet (de base exclusivement dnf). Si vous souhaitez ajouter un paquet à protéger vous devez
ajouter le nom du paquet au fichier /etc/dnf/protected.d/dnf.conf.

2.4Configuration d'un proxy


Il est possible d'utiliser DNF derrière un proxy :

# dnf config-manager --setopt proxy=http://proxy.exemple.com:1234/ --save


2.5Amélioration de la vitesse de téléchargement
Deux outils permettent d'améliorer la vitesse de téléchargement en sélectionnant les miroirs les plus
performants.

2.5.1Metalink
Metalink crée des listes de serveurs en fonction de la géolocalisation, on peut les retrouver
dans /var/cache/dnf/fedora-xxx/metalink.xml, /var/cache/dnf/updates-xxx/
metalink.xml, /var/cache/packagekit/ ... etc. Le procédé de téléchargement utilisé par metalink
est assez complexe puisqu'il va chercher, en utilisant divers protocoles (http, https, ftp, rsync), dans toutes
les sources les plus disponibles. Pour n'utiliser que les serveurs d'un pays donné (choix a priori le plus
rapide), il suffit d'ajouter "&country=fr" au lien metalink des dépôts listés dans /etc/yum.repos.d/ .
Pour ceux qui n'ont pas envie de tout éditer à la main :

# cp -r /etc/yum.repos.d /etc/yum.repos.d_backup
# cd /etc/yum.repos.d/
# sed -i '/^metalink/s/$/\&country=fr/' *.repo

Si pour une raison ou pour une autre vous souhaitez réutiliser les anciens dépôts avant modification :

# mv /etc/yum.repos.d_backup /etc/yum.repos.d

Si le téléchargement devient lent à nouveau, tentez de supprimer le


fichier /var/cache/dnf/fastestmirror.cache, qui contient la liste des mirroirs déterminés comme
étant les plus rapides par dnf, et lancez à nouveau un dnf upgrade.

2.5.2Plugin fastestmirror
L'autre option est d'utiliser le plugin fastestmirror. Il crée une seule
liste /var/cache/dnf/fastestmirror.cache qui supplante les listes créées auparavant par
metalink. Pour l'activer, il suffit de modifier le fichier /etc/dnf/dnf.conf et d'ajouter la ligne
fastestmirror=true . Fastestmirror connaît quelques bugs, ce qui explique qu'il n'est pas activé par défaut.

2.6Consulter votre configuration


Vous pouvez consulter vos options de configuration, tel que les dépôts activés, les options de débogages,
les options d'affichages...

# dnf config-manager --dump

Si vous souhaitez uniquement consulter vos dépôts :

# dnf repolist all

3Utilisation de DNF
3.1Mises à jour
Je ne peux que vous conseiller de mettre à jour régulièrement votre système, les mises à jours vous
permettent d'améliorer la fiabilité et la sécurité de votre système, vous pouvez aisément le faire avec la
commande :

# dnf upgrade

ou

# dnf update

Si vous souhaitez uniquement savoir si des mises à jours sont disponible mais sans les installer :

# dnf check-update

Si vous souhaitez faire une mise à jour tout en excluant un paquet :

# dnf upgrade --exclude=nomdupaquet\*

Exemple d'exclusion d'un paquet


Exemple de mise à jour avec exclusion de la mise à jour du noyau :

# dnf upgrade --exclude=kernel\*

3.2Rechercher un paquet
Pour rechercher un paquet à partir d'un mot clef :

# dnf search <mot clef>

Il s'agit d'une recherche large, en recoupant les informations contenues dans le nom des paquets ainsi que
dans leurs descriptions.
Si vous avez déjà une idée plus précise du paquet recherché, il est possible de restreindre la recherche au
seul nom du paquet :

# dnf list <nom du paquet>

Bien sûr, ceci n'est pas très pratique si l'on ne connaît pas très bien le nom du paquet.
Heureusement, DNF accepte le caractère joker  *  (étoile, ou wildcard en anglais). À noter que le caractère
joker fonctionne également avec d'autres commandes. Remarque : il est nécessaire d'« échapper » le joker
en plaçant le caractère  \  devant celui-ci ou bien en sécurisant toute la chaîne de caractère avec des
guillemets. Exemple :
# dnf list kernel\*

ou

# dnf list "kernel*"

DNF vous listera les paquets correspondants à votre recherche installés et ceux que vous pouvez installer.

3.3Obtenir des informations sur un paquet


Pour obtenir des informations sur un paquet, par exemple avant de l'installer ou de le supprimer:

# dnf info <nom du paquet>

3.4Installer un paquet
Pour installer un paquet :

# dnf install <nom du paquet>

Vous pouvez également installer plusieurs paquets en même temps :

# dnf install <nom du paquet1> <nom du paquet2>

3.5Supprimer un paquet
Pour supprimer un paquet :

# dnf remove <nom du paquet>

ou

# dnf erase <nom du paquet>

Attention aux dépendances, bien lire ce qui est proposé à la suppression.

Paquet protégé
Contrairement à yum, dnf intègre de base le plugin Protected-packages, qui empêche la suppression
de certain paquet (de base exclusivement dnf). Si vous souhaitez protéger un paquet vous devez
ajouter le nom du paquet au fichier /etc/dnf/protected.d/dnf.conf.
3.6Utilisation des groupes
DNF peut de plus gérer des groupes de RPMs, pour faciliter l'installation d'ensembles complexes, comme
par exemple les environnements graphiques.
Pour connaitre la liste des groupes disponibles :

# dnf grouplist

Pour avoir des informations sur un groupe, comme les paquets qui le composent :

# dnf groupinfo <"Nom du Groupe">

Pour installer un groupe :

# dnf groupinstall <"Nom du Groupe">

Installation de groupe de paquet


Soyez prudent lorsque vous installez plusieurs groupes, veillez par exemple à éviter d'installer plusieurs
environnements graphiques, il est très complexe de les faire cohabiter.

Pour supprimer un groupe :

# dnf groupremove <"Nom du Groupe">

3.7Utilisation de l'historique
Pour l'historique les transactions dans l'historique :

# dnf history

La liste donne quelques informations importantes, dont l'identifiant (ID) des transactions. Cet ID est utilisé
dans les autres commandes.

3.7.1Information sur une transaction


Pour avoir l'information sur une transaction :

# dnf history info <ID>

3.7.2Rejouer une transaction particulière


Pour rejouer une transaction :

# dnf history redo <ID>


3.7.3Annuler une transaction
Pour annuler une transaction :

# dnf history undo <ID>

Vous avez également la possibilités d'annuler toutes les transactions et revenir à un état précis :

# dnf history rollback <ID>

3.8Lister les dépôts yum


Pour connaitre la liste des dépôts configurés:

# dnf repolist all

3.9Désactivation temporaire de dépôt


Pour exclure un dépôt temporairement :

# dnf --disablerepo=<nom du dépôt> upgrade

Ceci est un exemple avec dnf upgrade mais l'option --disablerepo fonctionne bien entendu avec toutes
les options de dnf (list, install, search etc).

3.10Activation temporaire de dépôt


Pour inclure un dépôt temporairement :

# dnf --enablerepo=<nom du dépôt> upgrade

3.11Les options utiles

3.11.1L'option nogpgcheck
Attention !
L'option nogpgcheck de DNF est à utiliser avec beaucoup de parcimonie ! La très grande majorité du
temps, elle ne vous servira à rien.

N'ayez recours à cette option que si vous savez réellement ce que vous faites, et si vous en connaissez les
implications

Par défaut, dnf vérifie l'intégrité des paquets qu'il installe en utilisant la clé GPG du dépôt. Cette vérification
permet de confirmer que le paquet n'a pas été altéré depuis sa mise en ligne, volontairement (piratage) ou
non (problème de téléchargement). Si cette vérification échoue, il ne faut surtout pas installer le paquet
incriminé.
Il arrive cependant que l'on se retrouve avec un paquet RPM non signé à installer (ce ne doit pas être le
cas depuis un dépôt DNF !), le plus souvent avec l'option localinstall de DNF. Lorsque qu'une telle chose
arrive, il est possible d'utiliser l'option nogpgcheck de dnf :

# dnf localinstall --nogpgcheck </chemin/vers/le/paquet.rpm>

Attention !
Cette option s'applique à tous les paquets qui seront installés !

Veillez donc lors de son utilisation à ne pas installer les dépendances qui seraient récupérées depuis vos
dépôts avec l'option nogpgcheck activée !

3.11.2L'option provides
Plus qu'une option provides est une fonction avancée d'identification d'un paquet ou d'un fichier. Ainsi vous
pouvez utiliser cette option pour obtenir l'appartenance d'un fichier à un paquet ou encore pour savoir quel
est le paquet qui fournis un fichier manquant. Cette option est utilisée à des fins de debugage lors de
l'installation de programme provenant d'une autre distribution ou nécessitant une installation manuelle. Pour
connaitre le paquet de provenance :

# dnf provides </chemin/du/fichier>

Pour connaitre le paquet apte à fournir une dépendance manquante:

# dnf provides <librairie-manquante>

3.11.3L'option clean
Effacer le cache de dnf :

# dnf clean dbcache

Effacer les paquets mis en cache lors du téléchargement :

# dnf clean packages

Effacer tout les caches, les métadata et les fichiers inutiles de dnf :

# dnf clean all

3.11.4L'option hidden
Dans certain cas bien spécifique vous pourrez avoir besoin de combiner certain sous groupe de paquet
sans avoir besoin d'installer le groupe au complet. Ainsi vous pouvez accéder à la liste de ces sous
groupes avec l'option hidden :

# dnf grouplist hidden


Attention !
L'option hidden de DNF est à utiliser avec beaucoup de parcimonie ! La très grande majorité du temps,
elle ne vous servira à rien.

N'ayez recours à cette option que si vous savez réellement ce que vous faites, et si vous en connaissez les
implications

3.11.5L'option reinstall
Si vous avez besoin de reinstaller un programme rapidement vous pouvez utiliser l'option reinstall :

# dnf reinstall <nom-du-paquet>

3.11.6Sous options de la fonction list


Pour obtenir la liste des paquets obsolètes (utile lors d'un upgrade) :

# dnf list obsoletes

Pour obtenir la liste des derniers paquets ajoutés à vos dépôts:

# dnf list recent

Pour obtenir la liste des paquets installés mais ne provenant pas des dépôts (installation manuelle) :

# dnf list extras

4Effectuer une mise à niveau vers une version supérieure


de Fedora
Vous pouvez désormais effectuer une mise à niveau vers une version supérieure de Fedora à l'aide
de DNF et de son nouveau plugin dnf-plugin-system-upgrade.
Attention !
Cette méthode est actuellement la méthode recommandée pour effectuer une mise à niveau. Bien
que très fiable vous devez malgré tout procéder à des sauvegardes et veillez à ce que votre ordinateur
ne soit pas trop sollicité pendant la procédure, branché sur le secteur (Ordinateur portable) et éviter
d’interrompre le processus (tout particulièrement la phase d'installation).

Attention !
Si vous avez effectué une mise à jour majeure (installation de kernel, mise à jour de dnf...) mais que
vous n'avez pas effectué de redémarrage il est recommandé de procéder à un redémarrage avant de
lancer la procédure de mise à niveau.

Un article a spécialement été rédigé concernant cette opération de mise à niveau afin de rassembler toutes
les possibilités au même endroit. Vous pouvez consulter la section dédiée à DNF à ce
lien Mise_à_niveau_de_Fedora#Avec_DNF.
Une fois l'opération effectuée l'ordinateur démarrera sur la nouvelle version de Fedora.

Conclusion
DNF simplifie la gestion de votre ordinateur en vous permettant d'aisément ajouter un
programme ou de facilement le supprimer. Avec DNF vous disposez toujours des dernières
versions de vos programmes car celui-ci interroge les dépôts à chaque opération. Optimisé pour
les architectures modernes et construit selon des standard moderne ; DNF deviendra
certainement une référence et sera étendu à d'autres distributions (rpm).
Si vous n’êtes pas encore à l'aise avec l'utilisation de DNF, vous pouvez utiliser l'interface
graphique gnome-software, renommée en français Logiciels, celle-ci vous fournis l'essentiel
des fonctions. Mais savoir utiliser un gestionnaire de paquet en ligne de commande n'est pas très
compliqué et n'est absolument pas une connaissance superflue.

Vous aimerez peut-être aussi