Hinweis:
- Dieses Tutorial ist in einer von Oracle bereitgestellten kostenlosen Übungsumgebung verfügbar.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. In der Übung ersetzen Sie diese Werte durch die Werte, die für Ihre Cloud-Umgebung spezifisch sind.
DNF für Oracle Linux verwenden
Einführung
Oracle Linux stellt das Utility dnf basierend auf Dandified Yum (DNF) als Clientsoftware für die Installation und Verwaltung von Systempackages bereit. Diese Packages stammen aus dem Unbreakable Linux Network (ULN) oder einem Oracle Linux yum-Server. Softwarepackages werden auf einem System mit Standard-DNF-Befehlen installiert und hängen davon ab, ob das System die entsprechenden ULN-Kanalabonnements oder yum-Repositorys aktiviert hat. Bei der Installation oder dem Upgrade von Packages verarbeitet dnf automatisch Packageabhängigkeiten und -anforderungen.
DNF verbessert die Funktionalität und Performance erheblich und bringt viele neue Funktionen mit sich, darunter modulare Inhalte und eine stabilere und dokumentiertere API im Vergleich zum traditionellen yum-Befehl.
Ziele
In diesem Tutorial erfahren Sie, wie Sie:
- Mit DNF-Repositorys arbeiten
- Pakete und Module verwalten
- Sicherheitsupdates installieren
- Packagegruppen nutzen
- DNF-Historienfunktion verwenden
- Patchupgrades automatisieren
Voraussetzungen
-
Mindestens ein einziges Oracle Linux-System
-
Auf jedem System muss Oracle Linux installiert und konfiguriert sein mit:
- Ein Nicht-Root-Benutzerkonto mit Sudo-Zugriff
- Zugriff auf das Internet
Oracle Linux bereitstellen
Hinweis: Wenn Sie in Ihrem eigenen Mandanten ausgeführt werden, lesen Sie das Projekt linux-virt-labs GitHub README.md, und schließen Sie die Voraussetzungen ab, bevor Sie die Übungsumgebung bereitstellen.
-
Öffnen Sie ein Terminal auf dem Luna Desktop.
-
Klonen Sie das Projekt
linux-virt-labsGitHub.git clone https://github.com/oracle-devrel/linux-virt-labs.git -
Wechseln Sie in das Arbeitsverzeichnis.
cd linux-virt-labs/ol -
Installieren Sie die erforderlichen Sammlungen.
ansible-galaxy collection install -r requirements.yml -
Bereitstellen der Übungsumgebung.
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6"Die kostenlose Übungsumgebung erfordert die zusätzliche Variable
local_python_interpreter, dieansible_python_interpreterfür Wiedergaben festlegt, die auf localhost ausgeführt werden. Diese Variable ist erforderlich, da die Umgebung das RPM-Package für das Oracle Cloud Infrastructure-SDK für Python unter den python3.6-Modulen installiert.Die Standard-Deployment-Ausprägung verwendet AMD-CPU und Oracle Linux 8. Um eine Intel CPU oder Oracle Linux 9 oder 10 zu verwenden, fügen Sie
-e instance_shape="VM.Standard3.Flex"hinzu, oder setzen Sie-e os_version="10",-e os_version="9"oder-e os_version="8"auf den Deployment-Befehl.Wichtig: Warten Sie, bis das Playbook erfolgreich ausgeführt wird, und erreichen Sie die Unterbrechungsaufgabe. In dieser Phase des Playbooks ist die Installation von Oracle Linux abgeschlossen, und die Instanzen sind bereit. Notieren Sie sich die vorherige Wiedergabe, in der die öffentlichen und privaten IP-Adressen der bereitgestellten Knoten und alle anderen Deployment-Informationen gedruckt werden, die während der Ausführung der Übung erforderlich sind.
Mit DNF-Repositorys arbeiten
-
Öffnen Sie ein Terminal, und verbinden Sie sich über SSH mit der Instanz ol-node-01.
ssh oracle@<ip_address_of_instance> -
Eine Liste der aktivierten Repositorys abrufen.
dnf repolistDNF durchsucht das Verzeichnis
/etc/yum.repos.dnach Dateien, die auf.repoenden. Sie können die Optionallübergeben, um eine Liste der aktivierten und deaktivierten Repositorys anzuzeigen. Eine Repository-Datei kann ein oder mehrere Repositorys definieren und das Repository als aktiviert betrachten, wennenabled=1und deaktiviert, wennenabled=0. -
Repository aktivieren.
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 -
Repository deaktivieren
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 -
Repository installieren
Oracle Linux stellt vordefinierte Repositorys für verschiedene Produkte im Paketformat bereit. Sie können nach diesen suchen und sie dann installieren und aktivieren.
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-el8Sie können Repositorys auch installieren, indem Sie:
- Direkte Erstellung einer neuen
.repo-Datei in/etc/yum.repos.d - Verwendung von
dnf config-manager --add-repo <repo_file>, mit dem eine lokal oder über eine URL gespeicherte Repository-Datei installiert werden kann
- Direkte Erstellung einer neuen
-
Entfernen Sie den DNF-Cache.
Um die Performance zu verbessern, speichert DNF Daten in
/var/cache/dnf. Es kann vorkommen, dass diese gecachten Daten veraltet werden unddnf-Befehle fehlschlagen. Um dieses Problem zu beheben, können Sie alle zwischengespeicherten Elemente entfernen.dnf clean allDNF erstellt diesen Cache im Laufe der Zeit automatisch neu, wenn Sie verschiedene Befehle ausführen. Um einen Befehlsfehler zu beheben, können Sie den Cache löschen und dann den nicht erfolgreichen Befehl wiederholen.
Pakete und Module verwalten
Hinweis für Oracle Linux 10: Die DNF-Modularität (Module und Streams) ist in Oracle Linux 10 nicht verfügbar. Sie können Standardpackages aus dem AppStream-Repository installieren, aber Sie können Module oder Streams nicht wie in früheren Releases aktivieren oder installieren.
In den angegebenen Schritten, in denen DNF-Modularität verwendet wird, gelten Anweisungen nur für Oracle Linux 8 und Oracle Linux 9.
-
Rufen Sie eine Liste der verfügbaren Packages aus den aktivierten Repositorys ab.
dnf listSie können die zurückgegebene Ausgabe einschränken, indem Sie die Optionen
installedoderavailableverwenden und sogar einen bestimmten Package-Namen wiednf list available gitanfordern. -
Listen Sie die verfügbaren Module auf.
dnf module listIn der Ausgabe werden die Module angezeigt, die für das System verfügbar sind, die zugehörigen Streams und Profile, wobei Folgendes gilt:
Name: ModulnameStream: StreamversionProfiles: Verfügbare Profile und deren Statuscommon: Ein gehärtetes, einsatzbereites Deployment und das Standardprofildevelopment: Installiert die Packages, die zum Ändern des Moduls erforderlich sindminimal: Installiert die kleinste Gruppe von Packages, die eine funktionierende Anwendung bereitstellen
Mit dem Hinweis am Ende der Ausgabe können Sie bestimmen, welche Streams und Profile aktiviert, deaktiviert, installiert oder die Standard sind.
Ähnlich wie bei Packages können Sie einen Modulnamen an die Option
listübergeben, um den Status nur dieses Moduls anzuzeigen. -
Rufen Sie Informationen zu einem Paket oder Modul ab.
dnf info zshIn diesem Fall ist
zshder Packagename. Sie tun dasselbe für Module, fügen jedoch den Befehlmodulehinzu und hängen das spezifische Modul an, wiednf module info php. Wenn Sie Informationen zu einem bestimmten Modulstream benötigen, übergeben Sie--profilezusammen mit module:stream und nicht den Modulnamen.dnf module info --profile php:8.2 -
Suchen Sie nach einem verfügbaren oder installierten Package.
dnf search php -
Suchen Sie nach dem Paket, das einen bestimmten Dateinamen oder Befehl bereitstellt.
Der Befehl
providesmit dem Aliaswhatprovidessucht das Package, das dem Dateinamen entspricht. Wenn Sie keinen vollständigen Pfad angeben, hängt DNF/usr/sbinund/usr/binan den Dateinamen an. Für Legacy-Zwecke werden auch/sbinund/binangehängt.dnf provides sudo -
Installieren Sie ein Paket.
sudo dnf install tmuxBeantworten Sie
y, um die Packageinstallation zu bestätigen. Vermeiden Sie diesen zusätzlichen Schritt in Zukunft, indem Sie die Option-yübergeben. DNF installiert standardmäßig nur Packages aus aktivierten Repositorys. Sie können dieses Standardverhalten jedoch umgehen, indem Sie die Option--enablerepo=<repo name>übergeben. -
Installieren Sie ein Package neu.
sudo dnf reinstall -y tmuxDieser Befehl führt im Wesentlichen eine
dnf removeund dann einednf installaus. Der entscheidende Unterschied besteht darin, dass bei der Neuinstallation jede benutzerdefinierte Konfiguration von Dateien beibehalten wird, die mit dem Paket verknüpft sind. -
Modul aktivieren.
Bevor Sie Packages von einem Modul installieren, müssen Sie es aktivieren.
Oracle Linux 9:
sudo dnf module -y enable nginx:1.22Oracle Linux 8:
sudo dnf module -y enable nginx -
Installieren Sie ein Modul.
Oracle Linux 9:
sudo dnf module install -y nginx:1.22Oracle Linux 8:
sudo dnf module install -y nginx:1.14Nach der Installation der Packages zeigt die Ausführung von
sudo dnf module list nginxeinen[i]neben dem Profil 1.22 des Streams common [d] an. -
Entfernen Sie ein Package oder Modul.
sudo dnf remove -y tmuxEbenso können Sie ein Modul mit derselben Syntax entfernen, indem Sie den Paketnamen durch module:stream/profile ersetzen.
-
Schalten Sie ein Modul um.
Durch das Wechseln von Modulstreams wird der Inhalt entweder upgegradet oder auf eine andere Version als die aktuelle Version auf dem System herabgestuft. Es übernimmt auch die Installation zusätzlicher Abhängigkeiten oder das Entfernen von Paketen, die nicht mehr benötigt werden.
sudo dnf module -y switch-to nginx:1.24/common -
Modul deaktivieren.
sudo dnf module -y disable nginxDurch die Deaktivierung eines Moduls stellen Sie sicher, dass installierte Profile entfernt werden, alle zugehörigen Modulstreams nicht mehr verfügbar sind und modulare RPMS nicht Teil des Packagesets sind. Wenn DNF Konflikte erkennt, wird der Vorgang abgelehnt. Ein Grund, ein Modul zu deaktivieren, ist, dass neuere Pakete im Standard-Repository und im Appstream vorhanden sind.
-
Modul zurücksetzen.
Dieser Vorgang legt den Modulstatus fest, sodass er nicht mehr aktiviert oder deaktiviert ist. DNF entfernt alle Profile, und es sind nur Packages aus dem Standardprofil verfügbar.
sudo dnf module -y reset nginx
Sicherheitsupdates installieren
-
Alle verfügbaren Errata auflisten.
dnf updateinfo listIn der Ausgabe werden die aktivierten Repositorys gefolgt von jedem Update angezeigt. DNF sortiert die verfügbaren Errata in der Reihenfolge ihrer IDs und identifiziert sie weiter nach ihrem Typ.
Severity/Sec: Priorität/Sicherheitspatchbugfix: Fehlerbehebungenhancement: Featureverbesserung
Sie können cves, bugfix oder security an den Befehl anhängen, um die Ausgabe auf diesen bestimmten Errata-Typ einzugrenzen. Sie können auch
--installedübergeben, um eine Liste der Sicherheitsfixes abzurufen, die auf dem Host installiert sind. -
Übersicht über die verfügbaren Errata anzeigen.
dnf updateinfo summary -
Eine Liste der Sicherheitsupgrades basierend auf dem Schweregrad abrufen.
Sie können Kritisch, Wichtig, Moderat oder Niedrig an die Option
--sec-severityübergeben.dnf updateinfo list --sec-severity=ImportantMit DNF können Sie andere Optionen an den Befehl
listübergeben. Sie können--advisory <Advisory ID>verwenden, um ein bestimmtes Advisory abzurufen, oder--cve <CVD ID, um ein bestimmtes CVE abzurufen. Wenn Sie den Befehlinfoanstelle vonlistund die genauen Optionen verwenden, erhalten Sie detaillierte Informationen zu dem spezifischen Advisory oder CVE. -
Aktualisieren Sie jedes Paket auf die neueste Version.
sudo dnf upgrade -ySie können optional ein bestimmtes Paket aus dem Upgrade ausschließen, indem Sie die Option
-xgefolgt vom Paketnamen verwenden. Obwohl Oracle Linux empfiehlt, alle Errata anzuwenden, verwendet der Befehlupgradedie folgenden Optionen:--cve: Aktualisiert eine einzelne CVE-ID--advisory: Eine einzelne Advisory-ID aktualisieren--security: Aktualisiert alle sicherheitsbezogenen Errata
Alternativ kann ein Benutzer
sudo dnf upgrade-minimalausführen, um Updates nur auf Packages anzuwenden, die einen Bugfix, eine Verbesserung oder einen Fix für ein Sicherheitsproblem bereitstellen.Wichtig: Stellen Sie nach Kernel-Updates sicher, dass Sie das System neu starten. Wenn Sie ein System ausführen, auf dem Neustarts nicht möglich sind, wird empfohlen, Kernel-Patches mit Oracle Ksplice einzuspielen.
Packagegruppen verwalten
DNF ermöglicht die Installation, Aktualisierung oder Entfernung von Packagegruppen. Diese Gruppen sind eine Sammlung von abhängigen Paketen, die einem gemeinsamen Zweck dienen.
-
Listen Sie die verfügbaren Gruppen auf.
dnf group list -
Ruft eine Liste der Gruppen ab, die eine Gruppe enthält.
dnf group info "Server with GUI"Der Server mit GUI installiert den grafischen GNOME-Desktop.
-
Zeigen Sie die einzelnen Pakete an, die eine Gruppe enthält.
dnf group info Core -
Gruppe installieren
sudo dnf group install "Server with GUI" --assumenoDie Option
--assumenoantwortet automatisch mit "Nein" und überspringt die Installation, um Zeit in diesem Tutorial zu sparen. Lassen Sie diese Option aus dem Befehl aus, und ersetzen Sie sie durch die Option-y, um sie automatisch zu installieren. DNF stellt die Befehlednf group updateunddnf group removebereit, um Gruppen zu aktualisieren und zu entfernen.
Funktion "DNF-Historie" verwenden
Die DNF-Historienfunktion zeigt alle Aktionen an, die vom Befehl dnf ausgeführt werden. Mit der Historienfunktion können Sie eine bestimmte DNF-Transaktion rückgängig machen, wiederholen und zurücksetzen. Zusätzlich zur DNF-Historie werden Packageinstallationen, -updates und -entfernungen in der Datei /var/log/dnf.log protokolliert.
-
Alle DNF-Transaktionen auflisten.
dnf historySie können Informationen zu einer der Transaktionen abrufen, indem Sie
dnf history info <transaction ID>ausführen. -
Setzen Sie eine bestimmte Transaktion zurück.
Mit der Option
rollbackwerden alle Transaktionen nach dem angegebenen<transaction ID>rückgängig gemacht. Wenn Sie nur eine einzelne Transaktion stornieren möchten, verwenden Sie stattdessenundo.sudo dnf history rollback <transaction ID>Der DNF-Befehl
history rollbackerhöht die Transaktions-ID und zeichnet das Rollback als eindeutige Transaktion auf. -
Wiederholen Sie eine bestimmte Transaktion.
Sie können die spezifische Transaktion
redound jeden ihrer Schritte wiederholen.sudo dnf history redo <transaction ID>
Patching automatisieren
Eine Alternative zur manuellen Ausführung von dnf upgrade ist die Verwendung des automatischen DNF-Tools. Dieses Tool bietet automatische Benachrichtigungen über Upgrades, lädt sie herunter und installiert die Packages automatisch mit systemd-Timern.
-
Installieren Sie das erforderliche Package, und aktivieren Sie den Timer.
sudo dnf install dnf-automatic -ysudo systemctl enable --now dnf-automatic.timer -
Zeigen Sie die Standardkonfiguration upgrade_type an.
Die Konfigurationsdatei für das DNF Automatic Tool ist
/etc/dnf/automatic.conf. Standardmäßig gilt das automatische Upgrade für alle verfügbaren Upgrades. Sie können den Parameterupgrade_typeinsecurityändern, um nur die Sicherheitsupgrades zu verwenden.grep upgrade_type /etc/dnf/automatic.conf
Nächste Schritte
In diesem Tutorial erfahren Sie, wie Sie Softwarepackages auf Ihrem Oracle Linux-System verwalten und sicherstellen, dass Sie es mit den neuesten Sicherheitsfixes auf dem neuesten Stand halten. Informieren Sie sich also über Ihre Systeme, und schauen Sie sich den Abschnitt "Zugehörige Links" an, um weitere Details und Schulungen für Oracle Linux zu erhalten.
Verwandte Links
Weitere Lernressourcen
Sehen Sie sich weitere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um ein Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.