Note :

Utiliser DNF sur Oracle Linux

Présentation

Oracle Linux fournit l'utilitaire dnf, basé sur Dandified Yum (DNF), en tant que logiciel client pour l'installation et la gestion d'ensembles système. Ces ensembles peuvent provenir du réseau Unbreakable Linux (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 appropriés ou les référentiels yum. Lors de l'installation ou de la mise à niveau des ensembles, dnf gère automatiquement les dépendances et les exigences des ensembles.

DNF améliore considérablement les fonctionnalités et les performances et apporte de nombreuses nouvelles fonctionnalités, y compris un contenu modulaire et une API plus stable et documentée, par rapport à la commande yum traditionnelle.

Objectifs

Dans ce tutoriel, vous apprendrez à :

Préalables

Déployer Oracle Linux

Note : Si vous exécutez votre propre location, lisez les préalables du projet linux-virt-labs GitHub README.md et remplissez les conditions requises avant de déployer l'environnement de laboratoire.

  1. Ouvrez un terminal sur le Luna Desktop.

  2. Clonez le projet linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
  3. Accédez au répertoire de travail.

    cd linux-virt-labs/ol
  4. Installez les collections requises.

    ansible-galaxy collection install -r requirements.yml
  5. Déployez l'environnement de l'exercice.

    ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6"

    L'environnement de laboratoire gratuit nécessite la variable supplémentaire local_python_interpreter, qui définit ansible_python_interpreter pour les lectures exécutées sur localhost. Cette variable est nécessaire car l'environnement installe l'ensemble RPM pour la trousse SDK Oracle Cloud Infrastructure pour Python, située sous les modules python3.6.

    La forme de déploiement par défaut utilise le processeur AMD et Oracle Linux 8. Pour utiliser une unité centrale Intel ou Oracle Linux 9 ou 10, ajoutez -e instance_shape="VM.Standard3.Flex" ou réglez -e os_version="10", -e os_version="9" ou -e os_version="8" à la commande de déploiement.

    Important : Attendez que le livre de jeu s'exécute avec succès et atteignez la tâche Mettre en pause. À ce stade du livre de jeu, l'installation d'Oracle Linux est terminée et les instances sont prêtes. Prenez note de la lecture précédente, qui imprime les adresses IP publiques et privées des noeuds qu'il déploie et toutes les autres informations de déploiement nécessaires lors de l'exécution de l'exercice.

Utiliser les référentiels DNF

  1. Ouvrez un terminal et connectez-vous via SSH à l'instance ol-node-01.

    ssh oracle@<ip_address_of_instance>
  2. Obtenir la liste des référentiels activés.

    dnf repolist

    DNF recherche dans le répertoire /etc/yum.repos.d les fichiers se terminant par .repo. Vous pouvez transmettre l'option all pour voir 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é lorsque enabled=1 et désactivé lorsque enabled=0.

  3. Activer un référentiel.

    Oracle Linux 10 :

    sudo dnf config-manager --enable ol10_codeready_builder

    Oracle Linux 9 :

    sudo dnf config-manager --enable ol9_codeready_builder

    Oracle Linux 8 :

    sudo dnf config-manager --enable ol8_codeready_builder
  4. Désactivez un référentiel.

    Oracle Linux 10 :

    sudo dnf config-manager --disable ol10_codeready_builder

    Oracle Linux 9 :

    sudo dnf config-manager --disable ol9_codeready_builder

    Oracle Linux 8 :

    sudo dnf config-manager --disable ol8_codeready_builder
  5. Installez un référentiel.

    Oracle Linux fournit des référentiels prédéfinis pour divers produits dans un format d'ensemble. Vous pouvez les rechercher, puis les installer et les activer.

    dnf search oracle*release*

    Oracle Linux 10 :

    sudo dnf install -y oracle-instantclient-release-el10

    Oracle Linux 9 :

    sudo dnf install -y oracle-instantclient-release-el9

    Oracle Linux 8 :

    sudo dnf install -y oracle-instantclient-release-el8

    Bien que cela ne soit pas recommandé, vous pouvez également installer des référentiels par :

    1. Création directe d'un nouveau fichier .repo dans /etc/yum.repos.d
    2. 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
  6. Supprimez la mémoire 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 commandes dnf. Pour résoudre ce problème, vous pouvez supprimer tous les éléments mis en cache.

    dnf clean all

    DNF recrée automatiquement ce cache au fil du temps lorsque vous exécutez diverses commandes. Pour dépanner un échec de commande, vous pouvez effacer le cache, puis réessayer la commande en échec.

Gérer les ensembles et les modules

Remarque pour Oracle Linux 10 : La modularité DNF (modules et flux) n'est pas disponible dans Oracle Linux 10. Vous pouvez installer des ensembles standard à partir du référentiel AppStream, mais vous ne pouvez pas activer ou installer des modules ou des flux comme dans les versions antérieures.

Dans les étapes fournies, lorsque la modularité DNF est utilisée, les instructions s'appliquent uniquement à Oracle Linux 8 et à Oracle Linux 9.

  1. Obtenir une liste des ensembles disponibles à partir des référentiels activés.

    dnf list

    Vous pouvez restreindre la sortie retournée en utilisant les options installed ou available et même en demandant un nom d'ensemble spécifique tel que dnf list available git.

  2. Répertoriez les modules disponibles.

    dnf module list

    La sortie affiche les modules disponibles pour le système, les flux associés et les profils où :

    • Name : Nom du module
    • Stream : Version du flux
    • Profiles : Profils disponibles et leur statut
      • common : Déploiement renforcé prêt pour la production et profil par défaut
      • development : Installe les ensembles nécessaires pour apporter des modifications au module
      • minimal : Installe le plus petit jeu d'ensembles fournissant une application fonctionnelle

    Utilisez le conseil à la fin de la sortie pour déterminer quels flux et profils sont activés, désactivés, installés ou la valeur par défaut.

    Comme pour les ensembles, vous pouvez transmettre un nom de module à l'option list pour voir le statut de ce module.

  3. Obtenez des informations sur un package ou un module.

    dnf info zsh

    Dans ce cas, zsh est le nom de l'ensemble. Vous faites la même chose pour les modules, mais vous ajoutez la commande module et ajoutez le module spécifique, par exemple dnf module info php. Si vous avez besoin d'informations sur un flux de module particulier, transmettez --profile avec module:stream plutôt que le nom du module.

    dnf module info --profile php:8.2
  4. Recherchez un package disponible ou installé.

    dnf search php
  5. Recherchez le package qui fournit un nom de fichier ou une commande spécifique.

    La commande provides, avec l'alias whatprovides, recherche l'ensemble correspondant au nom du fichier. Si vous ne fournissez pas de chemin complet, DNF ajoute /usr/sbin et /usr/bin au nom du fichier. À des fins existantes, il ajoute également /sbin et /bin.

    dnf provides sudo
  6. Installez un package.

    sudo dnf install tmux

    Répondez à y pour confirmer l'installation du paquetage. Évitez cette étape supplémentaire à l'avenir en transmettant 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>.

  7. Réinstallez un package.

    sudo dnf reinstall -y tmux

    Cette commande exécute essentiellement dnf remove, puis dnf install. La différence essentielle est que l'utilisation de la réinstallation conserve toute configuration personnalisée des fichiers associés au package.

  8. 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.22

    Oracle Linux 8 :

    sudo dnf module -y enable nginx
  9. Installez un module.

    Oracle Linux 9 :

    sudo dnf module install -y nginx:1.22

    Oracle Linux 8 :

    sudo dnf module install -y nginx:1.14

    Après l'installation des ensembles, l'exécution de sudo dnf module list nginx affiche une valeur [i] à côté du profil common [d] du flux 1.22.

  10. Supprimez un package ou un module.

    sudo dnf remove -y tmux

    De même, vous pouvez supprimer un module à l'aide de la même syntaxe en remplaçant le nom de l'ensemble par module:stream/profile.

  11. Changer de module.

    Le changement de flux de module entraîne la mise à niveau ou la réduction du contenu vers une version différente de la version courante du système. Il gère également l'installation de dépendances supplémentaires ou la suppression des paquets qui ne sont plus nécessaires.

    sudo dnf module -y switch-to nginx:1.24/common
  12. Désactiver un module.

    sudo dnf module -y disable nginx

    En désactivant un module, vous assurez la suppression des profils installés, tous les flux de module associés deviennent indisponibles et 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 des raisons de désactiver un module est qu'il existe des packages plus récents dans le référentiel et le flux d'applications par défaut.

  13. Réinitialiser 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é

  1. Liste de tous les errata disponibles.

    dnf updateinfo list

    La sortie affiche les référentiels activés suivis de chaque mise à jour. DNF trie les errata disponibles dans l'ordre de leurs identifiants et les identifie davantage par leur type.

    • Severity/Sec : Correctif de priorité/sécurité
    • bugfix : Correction de bogue
    • enhancement : Amélioration des fonctionnalités

    Vous pouvez ajouter des cves, bugfix ou security à la commande pour limiter la sortie à ce type d'erreur spécifique. Vous pouvez également transmettre --installed pour obtenir la liste de ces correctifs de sécurité installés sur l'hôte.

  2. Afficher un sommaire des errata disponibles.

    dnf updateinfo summary
  3. Obtenez une 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=Important

    DNF vous permet de transmettre d'autres options à la commande list. Vous pouvez utiliser --advisory <Advisory ID> pour obtenir un avis spécifique ou --cve <CVD ID pour obtenir un CVE particulier. L'utilisation de la commande info au lieu de list et des options exactes fournit des informations détaillées sur la fonction de conseil ou CVE spécifique.

  4. Mettez à jour chaque paquet avec sa dernière version.

    sudo dnf upgrade -y

    Vous pouvez éventuellement exclure un ensemble spécifique de la mise à niveau à l'aide de l'option -x suivie du nom de l'ensemble. Bien qu'Oracle Linux recommande d'appliquer tous les errata, la commande upgrade prend les options suivantes :

    • --cve : Met à jour un seul ID CVE
    • --advisory : Mettre à jour un ID conseil unique
    • --security : Met à jour tous les errata liés à la sécurité

    Sinon, un utilisateur peut exécuter sudo dnf upgrade-minimal pour appliquer uniquement des mises à jour aux ensembles qui fournissent une correction de bogue, une amélioration ou un correctif pour un problème de sécurité.

    Important : Après toute mise à jour du noyau, assurez-vous de redémarrer le système. Si vous exécutez un système dans lequel les redémarrages ne sont pas possibles, il est recommandé d'utiliser Oracle Ksplice pour appliquer des correctifs au noyau.

Gérer les groupes d'ensembles

DNF permet l'installation, la mise à jour ou la suppression de groupes de paquets. Ces groupes sont un ensemble d'ensembles dépendants qui servent un but commun.

  1. Répertoriez les groupes disponibles.

    dnf group list
  2. 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.

  3. Afficher les ensembles individuels qu'un groupe contient.

    dnf group info Core
  4. Installez le groupe.

    sudo dnf group install "Server with GUI" --assumeno

    L'option --assumeno ré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 -y pour l'installer automatiquement. DNF fournit les commandes dnf group update et dnf group remove pour mettre à jour et supprimer des groupes.

Utiliser la fonction Historique DNF

La fonction d'historique DNF affiche toutes les actions effectuées par la commande dnf. La fonction d'historique permet d'annuler, de rétablir et d'annuler une transaction DNF spécifique. En plus de l'historique DNF, les installations, les mises à jour et les suppressions d'ensembles sont enregistrées dans le fichier /var/log/dnf.log.

  1. Liste de toutes les transactions DNF.

    dnf history

    Vous pouvez obtenir des informations sur l'une des transactions en exécutant dnf history info <transaction ID>.

  2. Repositionner une transaction spécifique.

    L'option rollback annulera toutes les transactions après <transaction ID> spécifié. Si vous ne souhaitez contrepasser qu'une seule transaction, utilisez plutôt undo.

    sudo dnf history rollback <transaction ID>

    La commande DNF history rollback incrémente l'ID transaction et enregistre le repositionnement en tant que transaction unique.

  3. Répétez une transaction spécifique.

    Vous pouvez redo la transaction spécifique et répéter chacune de ses étapes.

    sudo dnf history redo <transaction ID>

Automatiser l'application de correctifs

Une alternative à l'exécution manuelle de dnf upgrade est d'utiliser l'outil automatique DNF. Cet outil fournit des avis automatiques sur les mises à niveau, les télécharge et installe automatiquement les ensembles à l'aide des temporisateurs systemd.

  1. Installez l'ensemble requis et activez la minuterie.

    sudo dnf install dnf-automatic -y
    sudo systemctl enable --now dnf-automatic.timer
  2. Voir 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ètre upgrade_type par security pour utiliser uniquement les mises à niveau de sécurité.

    grep upgrade_type /etc/dnf/automatic.conf

Étapes suivantes

Ce tutoriel explique comment gérer des ensembles logiciels sur votre système Oracle Linux et vous assurer que vous le tenez à jour avec les derniers correctifs de sécurité. Mettez donc vos systèmes à jour, puis consultez la section Liens connexes pour plus de détails et de formation sur Oracle Linux.

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation sur le produit, visitez Oracle Help Center.