Yum ist ein Paketmanager, der auf Red Hat, CentOS und anderen Linux-Distributionen verwendet wird, die den RPM-Paketmanager verwenden. Yum wird verwendet, um die auf diesen Linux-Systemen installierten Pakete zu installieren, zu aktualisieren, zu löschen oder anderweitig zu manipulieren.
In diesem Tutorial behandeln wir den Befehl yum update – was er ist, wie man ihn benutzt und all die verschiedenen Befehle, die Sie kennen müssen, wenn Sie die installierten Pakete auf Ihrem System aktualisieren möchten.
Wie funktioniert Yum-Update?
Sie können den Befehl yum update verwenden, um auf einem System installierte Anwendungen zu aktualisieren. Wenn Sie den Befehl ohne Angabe von Paketnamen ausführen, werden alle Pakete auf dem System aktualisiert.
$ yum update
Wenn Sie diesen Befehl ausführen, beginnt yum damit, seine Repositories nach einer aktualisierten Version der Software zu durchsuchen, die Ihr System derzeit installiert hat. Der folgende Screenshot zeigt die Art der Ausgabe, die Sie normalerweise sehen, wenn Sie zum ersten Mal den Befehl yum update ausführen.
Wie Sie sehen können, listet die Ausgabe von yum zunächst die abgefragten Repositories auf, die die Standardrepositories für CentOS sind:AppStream, Base und Extras. Darunter listet yum die verschiedenen Pakete auf, für die es Updates gefunden hat.
Am Ende dieser Ausgabe zeigt yum die „Transaktionszusammenfassung“ an, die die Gesamtzahl der zu installierenden und zu aktualisierenden Pakete anzeigt.
In diesem Beispiel werden 166 Pakete aktualisiert und 6 neue Pakete installiert.
Falls Sie sich fragen, warum neue Pakete installiert werden, wenn wir eigentlich nur Anwendungen aktualisieren sollen, einige neue Softwarepakete sind möglicherweise Teil dieser Linux-Distribution geworden, oder einige aktualisierte Anwendungen sind möglicherweise auf zusätzliche Pakete angewiesen, die noch nicht installiert sind.
Sobald Sie die Liste der Software überprüft haben, die yum aktualisieren möchte, können Sie diese Änderungen bestätigen, indem Sie „y“ eingeben und die Eingabetaste drücken.
Yum führt dann die Upgrades durch, was je nach Geschwindigkeit Ihrer Verbindung und des Systems selbst einige Zeit in Anspruch nehmen kann.
Sobald es fertig ist, erhalten Sie eine abschließende Zusammenfassung, die alle Pakete auflistet, die erfolgreich aktualisiert wurden, sowie alle möglicherweise aufgetretenen Fehler.
Update ohne GPG-Prüfung
Sie können die GPG-Schlüssel verwenden, um die Authentizität eines RPM-Pakets zu überprüfen. Die Option –nogpgcheck in yum weist es an, die Überprüfung von GPG-Signaturen auf Paketen zu überspringen. Dies ist nützlich, wenn Sie ein unsigniertes Paket haben oder einfach keinen GPG-Schlüssel haben.
$ yum update --nogpgcheck
Dies ist eine schnelle Lösung, wenn Sie auf einen Fehler wie „Package NameOfPackage.rpm is not signed .. install failed!“ stoßen. beim Ausführen des normalen Befehls yum update. Die Option –nogpgcheck ignoriert diese Warnung und fährt trotzdem mit dem Upgrade des Pakets fort.
Update von einem lokalen Repo
Es ist möglich, lokale Repositories einzurichten, die yum abfragen kann, wenn es ein Update durchführt. Dies geschieht häufig, wenn Sie yum verwenden möchten, um Pakete zu aktualisieren, die nicht in den Standard-Repositorys enthalten sind, oder wenn Sie ein Offline-System aktualisieren müssen.
Legen Sie zunächst alle Ihre aktualisierten RPM-Dateien in einem neuen Ordner ab. In diesem Beispiel verwenden wir /root/rpms.
Navigieren Sie als Nächstes zum folgenden Verzeichnis, in dem Sie alle Repo-Dateien für yum sehen können:
$ cd /etc/yum.repos.d
Um ein lokales Repo einzurichten, erstellen Sie eine neue Datei in diesem Verzeichnis.
$ vi MyRepo.repo
Konfigurieren Sie Ihre Repo-Datei in diesem Format und ändern Sie die Zeilen nach Bedarf:
[MyRepo] name=My Local Repo baseurl=file:///root/rpms enabled=1 gpgcheck=0
Der große Unterschied zwischen einem lokalen Repo und einem entfernten Repo liegt in der „baseurl“-Zeile, wo das file://-Protokoll eine lokale Datei angibt, im Gegensatz zu den entfernten Protokollen http:// oder ftp://
Legen Sie nach dem Speichern der Datei die richtigen Berechtigungen fest:
$ chmod 644 MyRepo.repo
Das Repository sollte jetzt einsatzbereit sein. Stellen Sie sicher, dass Sie den Cache von yum löschen, bevor Sie einen yum-Aktualisierungsbefehl versuchen:
$ yum clean all
Patches anzeigen
Yum kann mit diesem Befehl verfügbare Sicherheitspatches anzeigen, ohne sie zu installieren:
$ yum updateinfo list security
Wenn es keine Ausgabe zurückgibt, wie im obigen Screenshot, bedeutet dies, dass für keine Software auf Ihrem System Sicherheitspatches verfügbar sind.
Ein einzelnes Paket aktualisieren
Wenn Sie ein bestimmtes Paket aktualisieren müssen, ohne ein Update für jede installierte Anwendung auszuführen, geben Sie einfach den Namen des Pakets in Ihrem Befehl yum update an.
$ yum update name-of-package
Es können mehrere Pakete angegeben werden, getrennt durch ein Leerzeichen. Sie müssen den Namen des Pakets perfekt getippt haben, damit yum es in seinen Repositories finden kann; Wenn Sie sich bei einem Paketnamen nicht sicher sind, überprüfen Sie zunächst, welche Pakete derzeit für Updates infrage kommen:
$ yum check-update
Alle bis auf ein Paket aktualisieren
Wenn Sie den Befehl yum update ausführen müssen, um alle Pakete zu aktualisieren, aber ein Paket ausschließen möchten, können Sie die Option –exclude angeben.
Eine häufige Situation, in der Administratoren dies für erforderlich halten, sind Kernel-Updates, da es sich um wichtige Updates handelt, die unvorhersehbare Fehler auf einem Produktionsserver verursachen können. Sie möchten den Befehl jedoch möglicherweise trotzdem ausführen, um weniger vertrauliche Anwendungen zu aktualisieren.
Um ein Paket auszuschließen (in diesem Beispiel diejenigen, die sich auf den Kernel beziehen):
$ yum update --exclude=kernel*
Das Sternchen fungiert als Platzhalter, falls es mehrere verwandte Pakete gibt oder Sie den vollständigen Namen des Pakets nicht kennen.
Alternativ:
$ yum update -x 'kernel*'
Mehrere Pakete ausschließen
Sie können mehrere Pakete mit mehr –exclude-Flags ausschließen.
$ yum update --exclude=kernel* --exclude=httpd
Verwenden Sie dieses Flag wie im obigen Beispiel oder das Flag -x so oft wie nötig.
Überprüfen Sie, wann das letzte Yum-Update ausgeführt wurde
Verwenden Sie den Befehl yum history, um eine Liste der Yum-Transaktionen mit Datum und Uhrzeit ihrer Ausführung anzuzeigen.
$ yum history
Im obigen Screenshot können Sie sehen, dass yum die Software zuletzt am 4. Januar aktualisiert hat.
Rollback-Update (zurücksetzen)
Ein großartiges Feature von yum ist, dass es Ihnen ermöglicht, ein aktuelles Update rückgängig zu machen und so die aktualisierten Pakete auf ihre vorherigen Versionen zurückzusetzen.
Jeder yum-Aktion (installieren, aktualisieren, löschen usw.) wird eine Transaktions-ID zugewiesen, und diese ID muss angegeben werden, wenn eine yum-Aktualisierung rückgängig gemacht wird. Verwenden Sie diesen Befehl, um eine Liste der Transaktions-IDs für die letzten Yum-Operationen anzuzeigen:
$ yum history
Im obigen Screenshot sehen Sie, dass die letzte mit yum ausgeführte Operation das httpd-Paket installiert hat. Das Rückgängigmachen einer Installation oder eines Updates funktioniert auf die gleiche Weise, also machen wir in diesem Beispiel diese letzte Installation von httpd rückgängig. Wie im Screenshot gezeigt, hat diese Transaktion die ID 7.
Um diese Änderung rückgängig zu machen und das Programm auf seine vorherige Version zurückzusetzen, geben Sie diesen Befehl ein:
$ yum history undo 7
Wie üblich fasst yum die vorzunehmenden Änderungen zusammen und fragt mit einer Y/N-Eingabeaufforderung, ob Sie fortfahren möchten. Geben Sie Y ein, und die angegebene Transaktion wird rückgängig gemacht.
Bereinigen Sie ein fehlgeschlagenes Yum-Update (Fehlerbehebung)
Wenn ein oder mehrere Pakete nicht erfolgreich aktualisiert werden können, wenn Sie den Befehl yum update ausführen, kann das System mit doppelt installierten Paketen enden (2 Versionen des gleichen Programms).
Manchmal kann das Problem durch Befolgen der Rollback-Anweisungen im obigen Abschnitt behoben werden. Wenn das nicht funktioniert, können Sie mit diesem Befehl doppelte Pakete auf Ihrem System entfernen:
$ package-cleanup --dupes
Yum speichert einen Cache mit Informationen für Pakete, Metadaten und Header. Wenn Sie auf einen Fehler stoßen, ist das Leeren des Caches von yum ein guter erster Schritt zur Fehlerbehebung. Verwenden Sie dazu den folgenden Befehl:
$ yum clean all
Fehler überspringen
Beim Aktualisieren oder Installieren eines Pakets erfordert dieses Paket möglicherweise zusätzliche Software, um ordnungsgemäß ausgeführt zu werden. Yum ist sich dieser Abhängigkeiten bewusst und wird versuchen, sie während Updates zu lösen, indem die zusätzlich benötigten Pakete installiert oder aktualisiert werden.
Wenn yum Probleme beim Installieren der erforderlichen Abhängigkeiten hat, erzeugt es einen Fehler und fährt nicht fort. Dies ist ein Problem, wenn Sie andere Pakete haben, die aktualisiert werden müssen.
Um yum anzuweisen, mit der Aktualisierung anderer Pakete fortzufahren und diejenigen mit defekten Abhängigkeiten zu überspringen, können Sie den Befehl –skip-broken in Ihrem yum-Update-Befehl angeben.
$ yum update --skip-broken
Erhalten Sie eine Liste der Pakete, die aktualisiert werden müssen
Wenn Sie den Befehl yum update ganz normal ohne zusätzliche Optionen ausführen, wird eine Liste der verfügbaren Updates ausgegeben.
$ yum update
Wenn Sie zusätzliche Informationen zu den verfügbaren Paketaktualisierungen sehen möchten, geben Sie diesen Befehl ein:
$ yum updateinfo
Um Informationen zu Sicherheitsupdates anzuzeigen, die für das System verfügbar sind, geben Sie diesen Befehl ein:
$ yum updateinfo security
Unterschied zwischen Yum-Check-Updates und Listen-Update
Obwohl die beiden Befehle ähnlich klingen, gibt es einen Unterschied zwischen dem Suchen nach Updates und dem Auflisten von Updates in yum.
$ yum list updates
Der oben gezeigte Befehl zum Auflisten von Updates listet alle Pakete in den Repositories auf, für die ein Update verfügbar ist. Denken Sie daran, dass einige der Pakete in den Repositories möglicherweise nicht einmal auf Ihrem System installiert sind.
$ yum check-update
Der oben gezeigte Befehl zum Suchen nach Updates ist eine Möglichkeit, nach Updates zu suchen, ohne den Benutzer zur Interaktion aufzufordern. Dies ist der Befehl, für den Sie sich entscheiden würden, wenn Sie beispielsweise ein Skript schreiben, um nach Updates zu suchen.
Der check-update-Befehl gibt einen Exit-Wert von 100 zurück, wenn Pakete mit verfügbaren Updates verfügbar sind, und er gibt einen Exit-Wert von 0 zurück, wenn keine verfügbaren Updates verfügbar sind.
Wenn ein Fehler auftritt, wird der Wert 1 zurückgegeben. Verwenden Sie diese Exit-Codes, um Ihr Skript entsprechend zu codieren.
Benachrichtigen, wenn Updates verfügbar sind
Es gibt einige Pakete, mit denen Sie Yum-Updates auf Ihrem System verwalten können. Einige können sogar Administratoren benachrichtigen, wenn Yum Updates zur Installation bereithält. Einer dieser Dienste heißt yum-cron.
Installieren Sie yum-cron mit yum:
$ yum install yum-cron
Stellen Sie den yum-cron-Dienst so ein, dass er beim Booten startet:
$ systemctl enable yum-cron.service $ systemctl start yum-cron.service
Konfigurieren Sie die Einstellungen für yum-cron in der Konfigurationsdatei mit vi oder Ihrem bevorzugten Texteditor:
$ vi /etc/yum/yum-cron.conf
In dieser Datei können Sie festlegen, ob die Updates automatisch angewendet werden sollen oder nicht. Wenn Sie nur Benachrichtigungen erhalten möchten, füllen Sie die E-Mail-Informationen in der Konfigurationsdatei aus. Yum-cron sendet Ihnen dann immer dann eine E-Mail, wenn Updates für Ihr System verfügbar sind.
apply_updates = no #don’t apply updates automatically email_from = [email protected] email_to = [email protected] email_host = localhost
Welchen Port verwendet Yum Update
Yum verwendet Port 80 bei der Suche nach Updates. Wenn Sie sich die Repository-Dateien auf Ihrem System ansehen, werden Sie feststellen, dass alle darin enthaltenen Links mit http.
beginnenWenn Sie eine Regel in Ihrer Firewall erstellen müssen, damit yum funktioniert, müssen Sie Port 80 zulassen.
Yum-Update vs. Upgrade
Bisher haben wir in diesem Tutorial nur über den Befehl yum update gesprochen, aber es gibt einen anderen sehr ähnlichen Befehl:yum upgrade.
$ yum upgrade
Es gibt einen kleinen Unterschied zwischen diesen beiden Befehlen. Yum Update aktualisiert die Pakete auf Ihrem System, überspringt jedoch das Entfernen veralteter Pakete.
Das Yum-Upgrade aktualisiert auch alle Pakete auf Ihrem System, entfernt aber auch die veralteten Pakete.
Dies macht Yum Update von Natur aus zur sichereren Option, da Sie sich keine Sorgen machen müssen, versehentlich ein notwendiges Paket zu entfernen, wenn Sie Ihre Software aktualisieren.
Seien Sie vorsichtig, wenn Sie den Befehl yum upgrade ausführen, da er einige Pakete, die Sie noch verwenden, möglicherweise nicht erhält.
Schließlich hoffe ich, dass Sie das Tutorial nützlich finden.
Komm immer wieder.