Utiliser Fedora, Red Hat et dérivées

Utilisation de DNF : Commandes de base

Table des matières

Introduction



Qu'est ce que dnf ?

dnf est l'outil de gestion des paquets dans Fedora au delà de la version 22

dnf est utilisé dans un terminal et sert à installer, désinstaller des logiciels; mais aussi pour mettre à jour la distribution.

dnf gère parfaitement les dépendances, contrairement à rpm.

dnf possède de nombreuses options..


Utilisation des utilitaires



Installer



La principale utilisation de dnf, c'est l'installation des logiciels dans la distribution :

Code BASH :
dnf install paquet



Désinstaller



Pour désinstaller un paquet, c'est aussi simple :

Code BASH :
dnf remove paquet


Si on souhaite désinstaller aussi les dépendances non utilisées :

Code BASH :
dnf autoremove paquet



Mettre à jour



Pour mettre à jour un paquet :

Code BASH :
dnf upgrade paquet


Et pour mettre à jour la distribution :

Code BASH :
dnf upgrade


A noter : On peut exclure un paquet d'une mise à jour :

Code BASH :
dnf --exclude=paquet update


Les jokers fonctionnent aussi, moyennant un échappement du caractère :

Code BASH :
dnf --exclude=kernel\* update


Si vous ne souhaitez installer que les bugfixes ou les patch de sécurité (ou les 2) :

Code BASH :
dnf update --security --bugfix



Rétrograder la version d'un paquet



Il est aussi possible (s'il est présent dans les dépôts) de rétrograder la version d'un paquet via

Code BASH :
dnf downgrade paquet



Réinstaller un paquet



Même si c'est quasiment jamais utilisé, il est possible aussi via dnf de réinstaller un paquet. Ça le réinstalle dans la même version :

Code BASH :
dnf reinstall paquet



Recherche de paquets



Pour rechercher un paquet par son nom, on peut utiliser :

Code BASH :
dnf list paquet


Si on ne connait pas le nom du paquet, on peut utiliser le joker (échappement du caractère nécessaire) :

Code BASH :
dnf list \*paqu\*


Lister tous les paquets disponibles dans les dépôts :

Code BASH :
dnf list


Lister tous les paquets installés :

Code BASH :
dnf list installed


Si on veut étendre la recherche à la description, utiliser alors

Code BASH :
dnf search mot



Rechercher un paquet contenant un fichier



Si on a besoin d'un fichier précis, on peut grâce à dnf chercher le paquet correspondant :

Code BASH :
dnf provides /usr/bin/fichier


Avoir des infos sur un paquet



Pour avoir des informations détaillées sur un paquet, on peut utiliser la commande

Code BASH :
dnf info paquet


Afficher l'historique des transactions



Avec dnf, on peut aussi afficher un historique des transactions réalisées :

Code BASH :
dnf history


Voici un exemple de sortie :

Code TEXT :
ID     | Ligne de commande         | Date et heure    | Action(s)      | Modifié
--------------------------------------------------------------------------------
     3 | autoremove dnfdragora     | 2020-09-13 12:00 | Removed        |   17   
     2 | install neofetch          | 2020-09-13 12:00 | Install        |   24   
     1 |                           | 2020-09-13 11:48 | Install        | 1261 EE


Trouver les paquets qui dépendent d'un autre



Pour savoir quels paquets dépendent d'un autre (par exemple si on veut la liste des paquets qui ont besoin de qt5-linguist), on fera :

Code BASH :
dnf repoquery --whatrequires qt5-linguist --repo fedora-source


Trouver les paquets explicitement installés



Pour savoir quels paquets ont été explicitement installés (qui n'ont pas été installés par dépendance), on pourra utiliser l'option userinstalled à dnf history :

Code BASH :
dnf history userinstalled


Installer les dépendances de construction



Quand on fait du packaging, on renseigne dans le fichier SPEC des paquets à installer par dépendances (Requires) mais aussi des dépendances nécessaires pour la compilation (BuildRequires).
Pour installer rapidement tous les BuildRequires :

Code BASH :
dnf builddep monprogramme.spec


Utiliser uniquement le cache



Si pour une raison particulière on ne veut pas que dnf aille rechercher les métadonnées sur Internet, on peut dire à dnf d'utiliser le cache uniquement.

Pour cela, on a l'option --cacheonly ou -C :

Code BASH :
dnf install -C /var/tmp/rpms/*.rpm



Manipulations avec les dépôts




Lister les dépôts



Pour lister les dépôts installés :

Code BASH :
dnf repolist all


Activer ou Désactiver un dépôt



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

Code BASH :
dnf config-manager --set-enabled nomdepot


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

Code BASH :
dnf config-manager --set-disabled nomdepot



Activer ou désactiver un dépôt pendant la mise à jour



De manière temporaire, on peut activer un dépôt pour une mise à jour :

Code BASH :
dnf --enablerepo=nomdepot update


ou le désactiver :

Code BASH :
dnf --disablerepo=nomdepot update



Modification de la configuration



Limiter la bande passante de dnf



Pour limiter la bande passante de dnf, éditer le fichier /etc/dnf/dnf.conf et utiliser l'option throttle . On ajoutera la valeur max_parallel_downloads pour limiter à 1 (par défaut, 3) :

Code BASH :
throttle=20k
max_parallel_downloads=1


Le paramètre de connexions est à placer à 1 sinon, dnf par défaut parallélise les téléchargements (par 3) et du coup, la limitation de la bande passante ne fonctionne plus !

Désactiver les deltarpm



Les deltarpm permettent de réduire la taille des téléchargements, mais l'opération de reconstruction des RPM est coûteuse en disque. Si la connexion est bonne, on peut désactiver l'utilisation des deltarpm en ajoutant ceci au fichier /etc/dnf/dnf.conf :

Code BASH :
deltarpm=0


Ajouter une exclusion permanente



Si vous souhaitez exclure la mise à jour de manière permanente un paquet (pour éviter l'option --exclude à chaque mise à jour), éditer /etc/dnf/dnf.conf . Ajouter la ligne exclude puis tous les noms de paquets concernés séparés par un espace :

Code BASH :
exclude=kernel* firefox libreoffice*


Protéger des paquets de la suppression



Si vous souhaitez ajouter un paquet à protéger (pour ne pas qu'il soit supprimé par inadvertance ou par orphelins) vous devez ajouter le nom du paquet à un fichier .conf dans /etc/dnf/protected.d/

Exemple /etc/dnf/protected.d/adrien.conf

Un nom de paquet par ligne.


Utiliser un proxy avec dnf



Deux possibilités :

Passer par bash :

Code BASH :
http_proxy="http://ip_proxy:3128"
export http_proxy


Directement dans le fichier /etc/dnf/dnf.conf :

Code BASH :
proxy=http://ip_proxy:3128


Utiliser le miroir le plus rapide



Par défaut, dnf peut utiliser un miroir super lent. Il existe une astuce pour bénéficier d'un miroir rapide. Editer le fichier /etc/dnf/dnf.conf, et placer l'instruction fastestmirror :

Code BASH :
fastestmirror=true


Désactiver les statistiques



Depuis Fedora 32, DNF envoie par défaut tous les 7 jours une requête permettant de comptabiliser des machines actives avec le type de version utilisée.

Si vous êtes opposé à cela, vous pouvez ajouter dans le fichier /etc/dnf/dnf.conf, l'instruction countme :

Code BASH :
countme=False



Conserver un certain nombre de kernels (installonly_limit)



Par défaut, dnf permet de conserver 3 kernels (les 3 plus récents). C'est configuré grâce à la variable installonly_limit du fichier dnf.conf.

Pour par exemple ne conserver que 2 kernels, éditer /etc/dnf/dnf.conf et ajouter la ligne

Code BASH :
installonly_limit=2


La valeur minimale est 2. Si vous mettez 0, cela veut dire de garder de manière illimitée.

Afficher toute la config dnf



Si vous voulez consulter les variables et la config de dnf sur votre système :

Code BASH :
dnf config-manager --dump



Les modules



Un article est dédié aux modules : https://www.linuxtricks.fr/wiki/utilisation-de-dnf-les-modules
Cette page a été vue 70968 fois