Remarques :
- Ce tutoriel est disponible dans un environnement d'atelier gratuit fourni par Oracle.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Utiliser DNF sur Oracle Linux
Introduction
Oracle Linux fournit l'utilitaire dnf, basé sur Dandified Yum (DNF), en tant que logiciel client pour l'installation et la gestion des packages système. Ces packages peuvent provenir du réseau Unbreakable Linux Network (ULN) ou d'un serveur yum Oracle Linux. Les packages logiciels sont installés sur un système à l'aide de commandes dnf standard et dépendent du système ayant activé les abonnements de canal ULN ou les référentiels yum appropriés. Lors de l'installation ou de la mise à niveau des packages, dnf gère automatiquement les dépendances et les exigences des packages.
DNF améliore considérablement les fonctionnalités et les performances et apporte de nombreuses nouvelles fonctionnalités, y compris le contenu modulaire et une API plus stable et documentée, par rapport à la commande yum traditionnelle.
Objectifs
Dans ce tutoriel, vous apprendrez à :
- Utiliser des référentiels DNF
- Gérer les packages et les modules
- Installer les mises à jour de sécurité
- Exploiter les groupes de packages
- Utiliser la fonction d'historique DNF
- Automatiser les mises à niveau de correctifs
Prérequis
-
Minimum d'un seul système Oracle Linux
-
Oracle Linux doit être installé et configuré sur chaque système avec :
- Compte utilisateur non root avec accès sudo
- Accès à Internet
Déployer Oracle Linux
Remarque : si vous êtes en cours d'exécution dans votre propre location, lisez le projet linux-virt-labs GitHub README.md et complétez les prérequis avant de déployer l'environnement d'exercice.
-
Ouvrez un terminal sur le bureau Luna.
-
Clonez le projet
linux-virt-labsGitHub.git clone https://github.com/oracle-devrel/linux-virt-labs.git -
Accédez au répertoire de travail.
cd linux-virt-labs/ol -
Installez les ensembles requis.
ansible-galaxy collection install -r requirements.yml -
Déployez l'environnement d'exercice.
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6"L'environnement d'exercice libre requiert la variable supplémentaire
local_python_interpreter, qui définitansible_python_interpreterpour les lectures exécutées sur localhost. Cette variable est nécessaire car l'environnement installe le package RPM pour le kit SDK Oracle Cloud Infrastructure pour Python, situé sous les modules python3.6.La forme de déploiement par défaut utilise l'UC AMD et Oracle Linux 8. Pour utiliser une CPU Intel ou Oracle Linux 9 ou 10, ajoutez
-e instance_shape="VM.Standard3.Flex"ou définissez-e os_version="10",-e os_version="9"ou-e os_version="8"à la commande de déploiement.Important : attendez que le guide de lecture s'exécute correctement et atteignez la tâche de pause. A ce stade du manuel, l'installation d'Oracle Linux est terminée et les instances sont prêtes. Prenez note de la lecture précédente, qui affiche les adresses IP publiques et privées des noeuds qu'elle déploie et toutes les autres informations de déploiement nécessaires lors de l'exécution de l'exercice.
Utiliser des référentiels DNF
-
Ouvrez un terminal et connectez-vous via SSH à l'instance ol-node-01.
ssh oracle@<ip_address_of_instance> -
Obtenez la liste des référentiels activés.
dnf repolistDNF recherche dans le répertoire
/etc/yum.repos.dles fichiers se terminant par.repo. Vous pouvez transmettre l'optionallpour afficher la liste des référentiels activés et désactivés. Un fichier de référentiel peut définir un ou plusieurs référentiels et considérer que le référentiel est activé lorsqueenabled=1et désactivé lorsqueenabled=0. -
Activez un référentiel.
Oracle Linux 10 ::
sudo dnf config-manager --enable ol10_codeready_builderOracle Linux 9 ::
sudo dnf config-manager --enable ol9_codeready_builderOracle Linux 8 ::
sudo dnf config-manager --enable ol8_codeready_builder -
Désactivez un référentiel.
Oracle Linux 10 ::
sudo dnf config-manager --disable ol10_codeready_builderOracle Linux 9 ::
sudo dnf config-manager --disable ol9_codeready_builderOracle Linux 8 ::
sudo dnf config-manager --disable ol8_codeready_builder -
Installez un référentiel.
Oracle Linux fournit des référentiels prédéfinis pour divers produits au format package. Vous pouvez les rechercher, puis les installer et les activer.
dnf search oracle*release*Oracle Linux 10 ::
sudo dnf install -y oracle-instantclient-release-el10Oracle Linux 9 ::
sudo dnf install -y oracle-instantclient-release-el9Oracle Linux 8 ::
sudo dnf install -y oracle-instantclient-release-el8Bien que ce ne soit pas recommandé, vous pouvez également installer des référentiels en procédant comme suit :
- Créer directement un fichier
.repodans/etc/yum.repos.d - Utilisation de
dnf config-manager --add-repo <repo_file>, qui permet d'installer un fichier de référentiel stocké localement ou à partir d'une URL
- Créer directement un fichier
-
Supprimez le cache DNF.
Pour améliorer les performances, DNF met en cache les données dans
/var/cache/dnf. Il arrive que ces données mises en cache deviennent obsolètes et entraînent l'échec des commandesdnf. Pour résoudre ce problème, vous pouvez supprimer tous les éléments mis en cache.dnf clean allDNF recrée automatiquement ce cache au fil du temps à mesure que vous exécutez diverses commandes. Pour résoudre un échec de commande, vous pouvez effacer le cache, puis réessayer la commande ayant échoué.
Gérer les packages et les modules
Remarque pour Oracle Linux 10 : la modularité DNF (modules et flux) n'est pas disponible sur Oracle Linux 10. Vous pouvez installer des packages standard à partir du référentiel AppStream, mais vous ne pouvez pas activer ou installer des modules ou des flux de données comme dans les versions précédentes.
Dans les étapes fournies, lorsque la modularité DNF est utilisée, les instructions s'appliquent uniquement à Oracle Linux 8 et à Oracle Linux 9.
-
Obtenez la liste des packages disponibles à partir des référentiels activés.
dnf listVous pouvez affiner la sortie renvoyée en utilisant les options
installedouavailableet même en demandant un nom de package spécifique tel quednf list available git. -
Répertoriez les modules disponibles.
dnf module listLa sortie affiche les modules disponibles pour le système, les flux associés et les profils où :
Name: nom du moduleStream: version de fluxProfiles: profils disponibles et leur statutcommon: déploiement renforcé prêt à l'emploi et profil par défautdevelopment: installe les packages nécessaires pour apporter des modifications au moduleminimal: installe le plus petit ensemble de packages qui fournissent une application fonctionnelle.
Utilisez le Conseil à la fin de la sortie pour déterminer les flux et les profils enabled, disabled, installed ou default.
Comme pour les packages, vous pouvez transmettre un nom de module à l'option
listpour voir le statut de ce module. -
Obtenez des informations sur un package ou un module.
dnf info zshDans ce cas,
zshest le nom du package. Vous faites de même pour les modules, mais ajoutez la commandemoduleet ajoutez le module spécifique, tel quednf module info php. Si vous avez besoin d'informations sur un flux de module particulier, transmettez--profileavec le module:stream plutôt que le nom du module.dnf module info --profile php:8.2 -
Recherchez un package disponible ou installé.
dnf search php -
Recherchez le package qui fournit un nom de fichier ou une commande spécifique.
La commande
provides, avec l'aliaswhatprovides, recherche le package correspondant au nom de fichier. Si vous ne fournissez pas de chemin complet, DNF ajoute/usr/sbinet/usr/binau nom de fichier. A des fins héritées, il ajoute également/sbinet/bin.dnf provides sudo -
Installez un package.
sudo dnf install tmuxRépondez à
ypour confirmer l'installation du package. Evitez cette étape supplémentaire à l'avenir en passant l'option-y. Par défaut, DNF installe uniquement les packages à partir des référentiels activés. Toutefois, vous pouvez ignorer ce comportement par défaut en transmettant l'option--enablerepo=<repo name>. -
Réinstallez un package.
sudo dnf reinstall -y tmuxCette commande effectue essentiellement une opération
dnf remove, puis une opérationdnf install. La différence essentielle est que l'utilisation de la réinstallation conserve toute configuration personnalisée des fichiers associés au package. -
Activer un module.
Avant d'installer des packages à partir d'un module, vous devez l'activer.
Oracle Linux 9 ::
sudo dnf module -y enable nginx:1.22Oracle Linux 8 ::
sudo dnf module -y enable nginx -
Installez un module.
Oracle Linux 9 ::
sudo dnf module install -y nginx:1.22Oracle Linux 8 ::
sudo dnf module install -y nginx:1.14Après l'installation des packages, l'exécution de
sudo dnf module list nginxaffiche un[i]en regard du profil common [d] du flux 1.22. -
Supprimer un package ou un module.
sudo dnf remove -y tmuxDe même, vous pouvez supprimer un module à l'aide de la même syntaxe en remplaçant le nom du package par module:stream/profile.
-
Changer de module.
Si vous changez de flux de module, le contenu est mis à niveau ou rétrogradé vers une version différente de la version actuelle du système. Il gère également l'installation de dépendances supplémentaires ou la suppression de packages qui ne sont plus nécessaires.
sudo dnf module -y switch-to nginx:1.24/common -
Désactivez un module.
sudo dnf module -y disable nginxEn désactivant un module, vous assurez la suppression des profils installés, que tous les flux de module associés deviennent indisponibles et que les RPMS modulaires ne font pas partie de l'ensemble de packages. Si DNF détecte des conflits, l'opération est rejetée. Une raison de désactiver un module est que des packages plus récents existent dans le référentiel et le flux d'applications par défaut.
-
Réinitialisation d'un module
Cette opération définit l'état du module de sorte qu'il ne soit plus activé ou désactivé. DNF supprime tous les profils et seuls les packages du profil par défaut sont disponibles.
sudo dnf module -y reset nginx
Installer les mises à jour de sécurité
-
Répertoriez tous les errata disponibles.
dnf updateinfo listLa sortie affiche les référentiels activés suivis de chaque mise à jour. DNF trie les errata disponibles par ordre de leurs ID et les identifie davantage par type.
Severity/Sec: patch Priorité/Sécuritébugfix: correction de bugenhancement: amélioration des fonctionnalités
Vous pouvez ajouter cves, bugfix ou security à la commande pour limiter la sortie à ce type d'erreur spécifique uniquement. Vous pouvez également transmettre
--installedpour obtenir la liste des correctifs de sécurité installés sur l'hôte. -
Afficher un récapitulatif des errata disponibles.
dnf updateinfo summary -
Obtenez la liste des mises à niveau de sécurité en fonction de leur gravité.
Vous pouvez transmettre Critique, Important, Modéré ou Faible à l'option
--sec-severity.dnf updateinfo list --sec-severity=ImportantDNF vous permet de transmettre d'autres options à la commande
list. Vous pouvez utiliser--advisory <Advisory ID>pour obtenir un conseil spécifique ou--cve <CVD IDpour obtenir un CVE particulier. L'utilisation de la commandeinfoau lieu delistet des options exactes fournit des informations détaillées sur le conseil ou le CVE spécifique. -
Mettez à jour chaque package vers sa dernière version.
sudo dnf upgrade -yVous pouvez éventuellement exclure un package spécifique de la mise à niveau avec l'option
-xsuivie du nom du package. Bien qu'Oracle Linux vous recommande d'appliquer tous les errata, la commandeupgradeaccepte les options suivantes :--cve: met à jour un seul ID de CVE--advisory: mettre à jour un seul ID de conseil--security: met à jour tous les errata liés à la sécurité
Un utilisateur peut également exécuter
sudo dnf upgrade-minimalpour appliquer uniquement les mises à jour aux packages qui fournissent un correctif, une amélioration ou une correction pour un problème de sécurité.Important : après toute mise à jour du noyau, veillez à réinitialiser le système. Si vous exécutez un système où les réinitialisations ne sont pas réalisables, il est recommandé d'utiliser Oracle Ksplice pour appliquer les patches du noyau.
Gérer les groupes de packages
DNF permet l'installation, la mise à jour ou la suppression de groupes de packages. Ces groupes sont un ensemble de packages dépendants qui ont un but commun.
-
Répertoriez les groupes disponibles.
dnf group list -
Obtenir la liste des groupes qu'un groupe contient.
dnf group info "Server with GUI"Le serveur avec interface graphique installe le bureau graphique GNOME.
-
Afficher les packages individuels contenus dans un groupe.
dnf group info Core -
Installez le groupe.
sudo dnf group install "Server with GUI" --assumenoL'option
--assumenorépond automatiquement non et ignore l'installation pour gagner du temps dans ce tutoriel. Laissez cette option hors de la commande et remplacez-la par l'option-ypour l'installer automatiquement. DNF fournit les commandesdnf group updateetdnf group removepour mettre à jour et enlever des groupes.
Utiliser la fonction d'historique DNF
La fonctionnalité d'historique DNF affiche toutes les actions effectuées par la commande dnf. La fonctionnalité d'historique permet d'annuler, de rétablir et d'annuler (rollback) une transaction DNF spécifique. Outre l'historique DNF, les installations, mises à jour et suppressions de packages sont consignées dans le fichier /var/log/dnf.log.
-
Répertoriez toutes les transactions DNF.
dnf historyVous pouvez obtenir des informations sur l'une des transactions en exécutant
dnf history info <transaction ID>. -
Annuler une transaction spécifique.
L'option
rollbackannulera toutes les transactions après la valeur<transaction ID>indiquée. Si vous souhaitez annuler une seule transaction, utilisez plutôtundo.sudo dnf history rollback <transaction ID>La commande DNF
history rollbackincrémente l'ID de transaction et enregistre l'annulation en tant que transaction unique. -
Répétez une transaction spécifique.
Vous pouvez
redola transaction spécifique et répéter chacune de ses étapes.sudo dnf history redo <transaction ID>
Automatiser l'application de patches
Une alternative à l'exécution manuelle de dnf upgrade consiste à utiliser l'outil automatique DNF. Cet outil fournit des notifications automatiques de mises à niveau, les télécharge et installe automatiquement les packages à l'aide des minuteries systemd.
-
Installez le package requis et activez l'horloge.
sudo dnf install dnf-automatic -ysudo systemctl enable --now dnf-automatic.timer -
Affichez la configuration upgrade_type par défaut.
Le fichier de configuration de l'outil automatique DNF est
/etc/dnf/automatic.conf. Par défaut, la mise à niveau automatique s'applique à toutes les mises à niveau disponibles. Vous pouvez remplacer le paramètreupgrade_typeparsecuritypour utiliser uniquement les mises à niveau de sécurité.grep upgrade_type /etc/dnf/automatic.conf
Etapes suivantes
Ce tutoriel vous explique comment gérer des packages logiciels sur votre système Oracle Linux et vous assurer qu'ils sont à jour avec les derniers correctifs de sécurité. Mettez donc vos systèmes à jour, puis consultez la section Related Links pour plus de détails et de formation sur Oracle Linux.
Liens connexes
Ressources de formation supplémentaires
Explorez d'autres ateliers sur le site docs.oracle.com/learn ou accédez à d'autres contenus d'apprentissage gratuits sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, consultez Oracle Help Center.