Website-Suche

So installieren und verwenden Sie „yum-utils“, um Yum zu warten und seine Leistung zu steigern


Unabhängig davon, dass Fedora damit beginnt, dnf als neuen Paketmanager und Standard-Paketverwaltungsbibliothek einzuführen, wird es den guten alten Yum-Paketmanager in anderen Spin-off-Distributionen (wie Red Hat Enterprise Linux (RHEL) und CentOS), bis es sich als genauso zuverlässig und stabiler erwiesen hat (laut Fedora Project Wiki, Stand: 15. November, 2015 ist dnf noch im testbaren Zustand). So werden Ihnen Ihre Yum-Management-Fähigkeiten noch eine ganze Weile gute Dienste leisten.

Aus diesem Grund stellen wir Ihnen in diesem Handbuch yum-utils vor, eine Sammlung von Dienstprogrammen, die sich in yum integrieren lassen, um dessen native Funktionen auf verschiedene Weise zu erweitern und es so leistungsfähiger und benutzerfreundlicher zu machen.

Yum-utils in RHEL/CentOS installieren

Yum-utils ist im Basis-Repo enthalten (das standardmäßig aktiviert ist), sodass die Installation in jeder Fedora-basierten Distribution so einfach ist wie Folgendes:

yum update && yum install yum-utils

Alle von yum-utils bereitgestellten Dienstprogramme werden automatisch mit dem Hauptpaket installiert, das wir im nächsten Abschnitt beschreiben.

Entdecken Sie die vom yum-utils-Paket bereitgestellten Dienstprogramme

Die von yum-utils bereitgestellten Tools sind in der Manpage aufgeführt:

man yum-utils

Hier sind 10 dieser leckeren Dienstprogramme, von denen wir dachten, dass sie Sie interessieren könnten:

1. Debuggen Sie ein Paket

debuginfo-install installiert die debuginfo-Pakete (und ihre Abhängigkeiten), die zum Debuggen von im Falle eines Absturzes erforderlich sind beim Entwickeln von Anwendungen, die ein bestimmtes Paket verwenden.

Um ein Paket (oder eine andere ausführbare Datei) zu debuggen, müssen wir auch gdb (den GNU-Debugger) installieren und damit ein Programm im Debugging-Modus starten.

Zum Beispiel:

gdb $(which postfix)

Der obige Befehl startet eine gdb-Shell, in der wir auszuführende Aktionen eingeben können. Beispielsweise startet run (wie im Bild unten gezeigt) das Programm, während bt (nicht gezeigt) den Stack-Trace (auch bekannt als Backtrace) anzeigt ) des Programms, das eine Liste der Funktionsaufrufe bereitstellt, die zu einem bestimmten Punkt in der Programmausführung geführt haben (anhand dieser Informationen können sowohl Entwickler als auch Systemadministratoren herausfinden, was im Falle eines Absturzes schief gelaufen ist).

Weitere verfügbare Aktionen und ihre erwarteten Ergebnisse sind in man gdb aufgeführt.

2. Suchen Sie das Repository der installierten Pakete

Der folgende Befehl zeigt, aus welchem Repository die aktuell installierten Pakete installiert wurden:

find-repos-of-install httpd postfix dovecot

Bei Ausführung ohne Argumente gibt find-repos-of-install die gesamte Liste der aktuell installierten Pakete zurück.

3. Entfernen Sie doppelte oder verwaiste Pakete

package-cleanup verwaltet die Paketbereinigung, Duplikate, verwaiste Pakete (Programme, die von einer anderen Quelle als den aktuell konfigurierten Repositorys installiert werden) und andere Abhängigkeitsinkonsistenzen, einschließlich der Entfernung alter Kernel, wie im folgenden Beispiel gezeigt:

package-cleanup --orphans
package-cleanup --oldkernels

Sie müssen sich keine Sorgen machen, dass der letzte Befehl Ihren Kernel beschädigt. Es betrifft lediglich alte Kernel-Pakete (Versionen, die älter sind als die aktuell ausgeführte), die nicht mehr benötigt werden.

4. Finden Sie die Paketabhängigkeitsliste heraus

repo-graph gibt eine vollständige Paketabhängigkeitsliste im Punkt-Format für alle Pakete zurück, die in den konfigurierten Repositorys verfügbar sind. Alternativ kann repo-graph die gleichen Informationen nach Repository zurückgeben, wenn es mit der Option --repoid= verwendet wird.

Sehen wir uns zum Beispiel die Abhängigkeiten für jedes Paket im Update-Repository an:

repo-graph --repoid=updates | less

Im obigen Befehl senden wir die Ausgabe von repo-graph zur einfacheren Visualisierung an less. Alternativ können Sie sie zur späteren Überprüfung in eine lokale Datei umleiten:

repo-graph --repoid=updates > updates-dependencies.txt

In beiden Fällen können wir sehen, dass das Paket iputils von systemd und openssl-libs abhängt.

5. Überprüfen Sie die Liste der ungelösten Abhängigkeiten

repoclosure liest die Metadaten der konfigurierten Repositorys, prüft die Abhängigkeiten der darin enthaltenen Pakete und zeigt eine Liste der ungelösten Abhängigkeiten für jedes Paket an:

repoclosure

6. So überprüfen Sie die neuesten oder ältesten Pakete in einem Verzeichnis

repomanage fragt ein Verzeichnis mit RPM-Paketen ab und gibt eine Liste der neuesten oder ältesten Pakete in einem Verzeichnis zurück. Dieses Tool kann nützlich sein, wenn Sie ein Verzeichnis haben, in dem Sie mehrere .rpm-Pakete verschiedener Programme speichern.

Bei Ausführung ohne Argumente gibt repomanage die neuesten Pakete zurück. Wenn es mit dem Flag --old ausgeführt wird, werden die ältesten Pakete zurückgegeben:

ls -l
cd rpms
ls -l rpms
repomanage rpms

Bitte beachten Sie, dass eine Änderung des Namens der RPM-Pakete KEINE Auswirkungen auf die Funktionsweise von repomanage hat.

7. Fragen Sie Yum-Repositorys ab, um Informationen zum Paket zu erhalten

repoquery fragt Yum-Repositorys ab und ruft zusätzliche Informationen zu Paketen ab, unabhängig davon, ob sie installiert sind oder nicht (Abhängigkeiten, im Paket enthaltene Dateien und mehr).

Beispielsweise ist htop (Linux Process Monitoring) derzeit nicht auf diesem System installiert, wie Sie unten sehen können:

which htop
rpm -qa | grep htop

Nehmen wir nun an, wir möchten die Abhängigkeiten von htop zusammen mit den Dateien auflisten, die in einer Standardinstallation enthalten sind. Führen Sie dazu jeweils die folgenden beiden Befehle aus:

repoquery --requires htop
repoquery --list htop

8. Speichern Sie alle installierten RPM-Pakete in einer Zip-Datei

Mit yum-debug-dump können Sie eine vollständige Liste aller von Ihnen installierten Pakete, aller in jedem Repository verfügbaren Pakete sowie wichtiger Konfigurations- und Systeminformationen in einer ZIP-Datei speichern.

Dies kann nützlich sein, wenn Sie ein aufgetretenes Problem beheben möchten. Der Einfachheit halber nennt yum-debug-dump die Datei yum_debug_dump--, sodass wir die Änderungen im Laufe der Zeit verfolgen können .

yum-debug-dump

Wie bei jeder komprimierten Textdatei können wir ihren Inhalt mit dem Befehl zless anzeigen:

zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

Sollten Sie die von yum-debug-dump bereitgestellten Konfigurationsinformationen wiederherstellen müssen, können Sie dazu yum-debug-restore verwenden:

yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

9. Herunterladen von Quell-RPMs aus Yum-Repositories

yumdownloader lädt Quell-RPM-Dateien aus Repositorys herunter, einschließlich ihrer Abhängigkeiten. Nützlich zum Erstellen eines Netzwerk-Repositorys, auf das von anderen Computern mit eingeschränktem Internetzugang zugegriffen werden kann.

Mit Yumdownloader können Sie nicht nur die binären RPMs herunterladen, sondern auch die Quell-RPMs (bei Verwendung mit der Option --source).

Erstellen wir beispielsweise ein Verzeichnis mit dem Namen htop-files, in dem wir die RPM(s) speichern, die für die Installation des Programms mit rpm erforderlich sind. Dazu müssen wir den Schalter --resolve zusammen mit yumdownloader verwenden:

mkdir htop-files
cd htop-files
yumdownloader --resolve htop
rpm -Uvh 

10. Synchronisieren Sie ein Remote-Yum-Repository mit einem lokalen Verzeichnis

reposync ist eng mit yumdownloader verwandt (tatsächlich unterstützen sie fast die gleichen Optionen), bietet aber einen erheblichen Vorteil. Anstatt Binär- oder Quell-RPM-Dateien herunterzuladen, synchronisiert es ein Remote-Repository mit einem lokalen Verzeichnis.

Synchronisieren wir das bekannte EPEL-Repository mit einem Unterverzeichnis namens epel-local im aktuellen Arbeitsverzeichnis:

man reposync
mkdir epel-local
reposync --repoid=epel --download_path=epel-local

Beachten Sie, dass dieser Vorgang eine ganze Weile dauern wird, da das Herunterladen von 8867-Paketen erfolgt:

Sobald die Synchronisierung abgeschlossen ist, überprüfen wir mit dem Befehl du die Menge an Speicherplatz, die von unserem neu erstellten Spiegel des EPEL-Repositorys verwendet wird:

du -sch epel-local/*

Jetzt liegt es an Ihnen, ob Sie diesen EPEL-Spiegel behalten oder ihn zum Installieren von Paketen verwenden möchten, anstatt einen Remote-Spiegel zu verwenden. Bitte beachten Sie im ersten Fall, dass Sie /etc/yum.repos.d/epel.repo entsprechend ändern müssen.

11. Korrigieren Sie nicht abgeschlossene oder abgebrochene Yum-Transaktionen

yum-complete-transaction ist ein Teil des Programms yum-utils, das nicht abgeschlossene oder abgebrochene Yum-Transaktionen auf einem System abfängt und versucht, sie abzuschließen.

Wenn wir beispielsweise die Linux-Server über den yum-Paketmanager aktualisieren, wird manchmal eine Warnmeldung ausgegeben, die wie folgt lautet:

Es sind noch nicht abgeschlossene Transaktionen vorhanden. Sie könnten erwägen, zuerst yum-complete-transaction auszuführen, um sie abzuschließen.

Um solche Warnmeldungen zu beheben und ein solches Problem zu beheben, wird der Befehl yum-complete-transaction ins Spiel gebracht, um die nicht abgeschlossenen Transaktionen abzuschließen. Er findet diese unvollständigen oder abgebrochenen yum-Transaktionen in transaction-all*- und transaction-done*-Dateien, die sich im Verzeichnis /var/lib/yum befinden.

Führen Sie den Befehl yum-complete-transaction aus, um unvollständige Yum-Transaktionen abzuschließen:


yum-complete-transaction --cleanup-only

Jetzt werden Yum-Befehle ohne die Warnungen zu unvollständigen Transaktionen ausgeführt.


yum update

Hinweis: Dieser Tipp wurde von einem unserer regelmäßigen Leser Mr. Tomas im Kommentarbereich hier.

Zusammenfassung

In diesem Artikel haben wir einige der nützlichsten Dienstprogramme behandelt, die von yum-utils bereitgestellt werden. Eine vollständige Liste finden Sie auf der Manpage (man yum-utils).

Darüber hinaus verfügt jedes dieser Tools über eine separate Manpage (siehe beispielsweise man reposync), die die primäre Dokumentationsquelle darstellt, auf die Sie zurückgreifen sollten, wenn Sie mehr über sie erfahren möchten.

Wenn Sie sich eine Minute Zeit nehmen, um die Manpage von yum-utils zu lesen, finden Sie vielleicht ein anderes Tool, das wir in einem separaten Artikel ausführlicher behandeln möchten. Wenn ja, oder wenn Sie Fragen, Kommentare oder Vorschläge zu diesem Artikel haben, teilen Sie uns dies gerne mit, indem Sie uns über das Kommentarformular unten eine Nachricht hinterlassen.