Note :
- Ce tutoriel est disponible dans un environnement de laboratoire gratuit fourni par Oracle.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments d'Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles qui sont propres à votre environnement en nuage.
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 à :
- Utiliser des référentiels DNF
- Gérer les ensembles et les modules
- Installer les mises à jour de sécurité
- Tirer parti des groupes d'ensembles
- Utiliser la fonction d'historique DNF
- Automatiser les mises à niveau de correctifs
Préalables
-
Minimum d'un seul système Oracle Linux
-
Oracle Linux doit être installé et configuré pour chaque système avec :
- Un compte utilisateur non racine avec accès sudo
- Accès à Internet
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.
-
Ouvrez un terminal sur le Luna Desktop.
-
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 collections requises.
ansible-galaxy collection install -r requirements.yml -
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éfinitansible_python_interpreterpour 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
-
Ouvrez un terminal et connectez-vous via SSH à l'instance ol-node-01.
ssh oracle@<ip_address_of_instance> -
Obtenir 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 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é lorsqueenabled=1et désactivé lorsqueenabled=0. -
Activer 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 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-el10Oracle Linux 9 :
sudo dnf install -y oracle-instantclient-release-el9Oracle Linux 8 :
sudo dnf install -y oracle-instantclient-release-el8Bien que cela ne soit pas recommandé, vous pouvez également installer des référentiels par :
- Création directe d'un nouveau 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éation directe d'un nouveau fichier
-
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 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 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.
-
Obtenir une liste des ensembles disponibles à partir des référentiels activés.
dnf listVous pouvez restreindre la sortie retournée en utilisant les options
installedouavailableet même en demandant un nom d'ensemble 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 du fluxProfiles: Profils disponibles et leur statutcommon: Déploiement renforcé prêt pour la production et profil par défautdevelopment: Installe les ensembles nécessaires pour apporter des modifications au moduleminimal: 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
listpour voir le statut de ce module. -
Obtenez des informations sur un package ou un module.
dnf info zshDans ce cas,
zshest le nom de l'ensemble. Vous faites la même chose pour les modules, mais vous ajoutez la commandemoduleet ajoutez le module spécifique, par exemplednf module info php. Si vous avez besoin d'informations sur un flux de module particulier, transmettez--profileavec 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 l'ensemble correspondant au nom du fichier. Si vous ne fournissez pas de chemin complet, DNF ajoute/usr/sbinet/usr/binau nom du fichier. À des fins existantes, il ajoute également/sbinet/bin.dnf provides sudo -
Installez un package.
sudo dnf install tmuxRépondez à
ypour 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>. -
Réinstallez un package.
sudo dnf reinstall -y tmuxCette commande exécute essentiellement
dnf remove, puisdnf 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 ensembles, l'exécution de
sudo dnf module list nginxaffiche une valeur[i]à côté du profil common [d] du flux 1.22. -
Supprimez 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 de l'ensemble par module:stream/profile.
-
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 -
Désactiver un module.
sudo dnf module -y disable nginxEn 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.
-
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é
-
Liste de 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 dans l'ordre de leurs identifiants et les identifie davantage par leur type.
Severity/Sec: Correctif de priorité/sécuritébugfix: Correction de bogueenhancement: 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
--installedpour obtenir la liste de ces correctifs de sécurité installés sur l'hôte. -
Afficher un sommaire des errata disponibles.
dnf updateinfo summary -
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=ImportantDNF 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 IDpour obtenir un CVE particulier. L'utilisation de la commandeinfoau lieu delistet des options exactes fournit des informations détaillées sur la fonction de conseil ou CVE spécifique. -
Mettez à jour chaque paquet avec sa dernière version.
sudo dnf upgrade -yVous pouvez éventuellement exclure un ensemble spécifique de la mise à niveau à l'aide de l'option
-xsuivie du nom de l'ensemble. Bien qu'Oracle Linux recommande d'appliquer tous les errata, la commandeupgradeprend 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-minimalpour 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.
-
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 ensembles individuels qu'un groupe contient.
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 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.
-
Liste de toutes les transactions DNF.
dnf historyVous pouvez obtenir des informations sur l'une des transactions en exécutant
dnf history info <transaction ID>. -
Repositionner une transaction spécifique.
L'option
rollbackannulera toutes les transactions après<transaction ID>spécifié. Si vous ne souhaitez contrepasser qu'une seule transaction, utilisez plutôtundo.sudo dnf history rollback <transaction ID>La commande DNF
history rollbackincrémente l'ID transaction et enregistre le repositionnement 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 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.
-
Installez l'ensemble requis et activez la minuterie.
sudo dnf install dnf-automatic -ysudo systemctl enable --now dnf-automatic.timer -
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ètreupgrade_typeparsecuritypour 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.
Liens connexes
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.