Arbeiten Sie mit Paketabhängigkeiten unter Red Hat Linux
- 3987
- 666
- Janin Pletsch
Zielsetzung
Unser Ziel ist es, sich an die verfügbaren Tools zu gewöhnen, um Informationen zu Paketabhängigkeiten in einem RPM -basierten System zu finden.
Betriebssystem- und Softwareversionen
- Betriebssystem: Red Hat Enterprise Linux 7.5
- Software: Drehzahl 4.11, Yum 3.4.3
Anforderungen
Privilegierter Zugriff auf das System.
Schwierigkeit
EINFACH
Konventionen
- # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können
sudo
Befehl - $ - Angegebene Linux-Befehle, die als regelmäßiger nicht privilegierter Benutzer ausgeführt werden sollen
Einführung
RPM, das für Red Hat Paket Manager steht, ist ein bekannter und ausgereifter Paketmanager, der von allen Red Hat-Aroma-Verteilungen sowie SUSE verwendet wird. Mit RPM kann der Packager die Beziehungen zwischen Paketen und sogar mit Paketversionen definieren - beispielsweise benötigt ein Apache -Tomcat -Server eine ordnungsgemäße Java -Umgebung, um ausführen zu können.
Auf der anderen Seite benötigen Sie, um eine Java -Umgebung zu installieren. Mit anderen Worten, der Tomcat -Server kommt darauf an auf Java.
RPM kann das Leben eines Sysadmins erheblich erleichtern, indem sie diese Abhängigkeiten präsentieren - und Werkzeuge, die sich auf Drehzahl wie das verlassen, wie die Drehzahl
Nützlichkeit, oder Yum
kann diese Abhängigkeiten automatisch lösen und alle zusätzlichen Pakete installieren, die für eine neue Komponente ordnungsgemäß ausgeführt werden können.
Informationen sammeln
Um die Liste der Pakete herauszufinden, die foo foo.Das Barpaket hängt davon ab, einfach rennen:
# Yum Deplist Foo.Bar
Und um die Liste der Pakete zu finden, die (abhängig von) Paket FOO erfordern.Bar:
rpm -q -WhatRequires foo.Bar
Ein Beispiel im wirklichen Leben mit einem generischen Paket: verprügeln
. Mal sehen, welche Pakete vom Bash -Paket benötigt werden:
# Yum Deplist Bash Paket: Bash.x86_64 4.2.46-30.EL7 Abhängigkeit: libc.So.6 () (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libc.So.6 (GLIBC_2.11) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libc.So.6 (GLIBC_2.14) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libc.So.6 (GLIBC_2.15) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libc.So.6 (GLIBC_2.2.5) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libc.So.6 (GLIBC_2.3) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libc.So.6 (GLIBC_2.3.4) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libc.So.6 (GLIBC_2.4) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libc.So.6 (GLIBC_2.8) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libdl.So.2 () (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libdl.So.2 (GLIBC_2.2.5) (64bit) Anbieter: Glibc.x86_64 2.17-222.EL7 Abhängigkeit: libtinfo.So.5 () (64bit) Anbieter: Ncurses-Libs.x86_64 5.9-14.20130511.EL7_4 Abhängigkeit: RTLD (GNU_HASH) Anbieter: GLIBC.x86_64 2.17-222.EL7 -Anbieter: Glibc.I686 2.17-222.EL7
Kopieren Aus der Paketperspektive, verprügeln
ist eine sehr generische und hängt, wie oben zu sehen, von einigen Kernpaketen abhängig. Aber wenn wir etwas viel abhängigeres installieren möchten, sagen wir, die Konzol
KDE -Terminalemulator auf einem Red Hat Linux mit einem Gnome -Desktop -Manager erhalten wir möglicherweise mehr als eine Seite mit langer Abhängigkeitsliste. Und mit Konzol
, Der Fall ist noch komplizierter, da er sich auf QT- und KDE -Pakete stützt. Um es zu installieren, müssen Sie die gesamte KDE Konzol
Bedürfnisse.
Um einen Einblick in die Installation der Pakete zu erhalten, überprüfen Sie die von YUM bereitgestellte Liste, bevor Sie mit der Installation beginnen:
# YUM Installieren Sie Konsole-Auflösungsabhängigkeiten-> Transaktionsprüfung ausführen ---> Paket Konsole.x86_64 0: 4.10.5-4.EL7 wird installiert-> Verarbeitungsabhängigkeit: Konsole-part = [… .]
Kopieren Im Falle eines Red Hat -Systems mit GNOME kann es einige Zeit dauern, bis die Abhängigkeiten einer KDE -Anwendung zum ersten Mal behoben werden. Wenn dies fertig ist. Gefolgt von mehr als hundert Paketen, die für Abhängigkeiten installiert sind:
[… .]-> Transaktionsprüfung ausführen-> Paket-Boost-System.x86_64 0: 1.53.0-27.EL7 wird installiert ---> Paket-Boost-Thread.x86_64 0: 1.53.0-27.EL7 wird installiert -> Abhängige Abhängigkeiten abhängig ====================================================== =======================ieben ====================================================== ====================================================== =================== installieren: Konsole x86_64 4.10.5-4.EL7 RHEL-7-SERVER-RPMS 78 K Installation für Abhängigkeiten: OpenExR-Libs [… .]
Kopieren In der Zusammenfassung können wir feststellen, dass die Installation am Ende viel mehr Platz auf der Festplatte nutzt und dann die Größe des Pakets, das wir benötigen:
[… .] Transaction Summary =============================================== ====================================================== ============================= Installieren Sie 1 Paket (+120 abhängige Pakete) Gesamtdownload Größe: 108 m installierte Größe: 307 m
Kopieren Dies ist eine Menge, aber wir haben nützliche Informationen darüber erhalten, wie viel Platz genutzt wird. Dies ist besonders nützlich, wenn wir viele Pakete in einer Transaktion installieren.
Während in diesem Fall die Transaktion verschwenderisch ist, geht es dem Ziel der Abhängigkeiten letztendlich um das Speichern von Ressourcen: Wenn jemand eine gewisse Funktionalität in seinem Code implementiert, muss das System möglicherweise nicht die gleiche Funktionalität implementieren Wieder, aber nutzen Sie die bereits vorhandene Implementierung. Für die Konzol
Beispiel, wenn Sie installieren möchten Akregator
Das nächste Mal wird das System bereits viele Abhängigkeiten gelöst haben, wie Kdepim
Paket enthalten Akregator
verlässt sich auch auf Qt
, Kdelibs
, und derartige.
Wir können benutzen Drehzahl
Dienstprogramm die Informationen umgekehrt: Listen wir die installierten Pakete auf, für die das erforderlich ist verprügeln
Paket:
# RPM -q --WhatRire Bash Dracut-033-535.EL7.x86_64 Initscripts-9.49.41-1.EL7.x86_64 AutoFS-5.0.7-83.EL7.x86_64 LVM2-2.02.177-4.EL7.x86_64 rsyslog-8.24.0-16.EL7.x86_64
Kopieren Reinigen Sie nicht benötigte Pakete
Wenn wir unsere Systeme auf dem neuesten Stand halten und ihre Rollen ändern oder erweitern, werden „Junk“ -Pakete unweigerlich angezeigt. Im Paket Sense bedeutet Junk nicht mehr benötigt und/oder veraltete Pakete. Um dem obigen Beispiel zu folgen, brauchen wir nicht mehr Akregator
, Da wir den „Dienst“ der RSS -Handhabung in einen hypothetischen zentralen RSS -Konzentrator in unserem System verlegt haben. Das wird nicht alle KDE -Pakete entfernen, da viele andere Pakete von ihnen abhängen können. Aber wenn nicht, sind diese Pakete Müll und konsumieren Ressourcen, einschließlich längerer Aktualisierungszeiten, als Yum
Standardmäßig aktualisiert alles blind, es findet neue Pakete/Errata für.
Ressourcen für die Aktualisierung einiger nicht benötigter Pakete für einen Laptop mit Breitbandverbindung und SSD scheinen kein Problem zu sein, aber stellen Sie sich ein Datencenter mit Hunderten oder Tausenden von Computern vor, und Sie erhalten das Bild. Es ist im Allgemeinen eine gute Idee, alle Systeme einfach zu halten, und das Ressourcenmanagement ist nur ein Punkt. Je komplexer ein System ist, desto mehr fehleranfällig ist es. Weitere Komponenten bedeuten mehr mögliche Fehler.
Um einen Überblick über nicht benötigte auf dem System installierte nicht benötigte Pakete zu erhalten, Autoremove
:
Yum Autoremove
Die Pakete, die diese Tools als nicht benötigt markieren, sind nicht identisch.
Wenn Sie eines dieser Tools verwenden, wird empfohlen, das zu überprüfen, was Yum
wird entfernen und möglicherweise testen, was die Reinigung zu Testmaschinen mit identischen Paketinhalten führt, bevor die Produktionssysteme reinigen.
Diese Tools sind in der Tat klug, aber nicht allwissend: Zum Beispiel gibt es in der RPM-Datenbank beispielsweise keinen Eintrag über eine benutzerdefinierte PHP Tassen
Drucken Sie eingehende Bestellungen auf einem mit dem Server verbundenen Drucker aus. Das heißt da dürfen Ein Eintrag sein, wenn die Anwendung mit den richtigen Abhängigkeiten enthalten ist, und ordnungsgemäß mit mit Drehzahl
oder Yum
- Das erfordert jedoch Mühe, und alle Dienste müssen auf die gleiche Weise verpackt werden, wenn Sie sich mit yum-basierten automatischen Aufräumungen sicher fühlen möchten.
Abhängigkeitsprobleme lösen
Insbesondere in großen Umgebungen kann es Abhängigkeitsprobleme bei der Installation oder Aktualisierung von Systemen geben.
Der folgende Screenshot zeigt ein einfaches Problem:
Abhängigkeiten mit Drehzahl lösenIm obigen Terminalbildschirm versuchen wir, die zu installieren NRPE
Paket, der Client, der benötigt wurde, um viele Aspekte des Systems mit Nagios zu überwachen. Wir haben den Client für die Verteilung heruntergeladen, aber beides Drehzahl
Und Yum
fällt mit dem gleichen Fehler aus: die NRPE
Das Paket erfordert (abhängig davon) die Nagios-Common
Paket. In diesem Beispiel können wir das benötigte Paket aus derselben Quelle und bei der Installation der beiden erhalten das erhalten Drehzahl
Der Versorgungsunternehmen sieht, dass die Abhängigkeit, die wir früher nicht gescheitert haben.
Abschluss
Yum und Drehzahl sind wesentliche Tools bei der Arbeit mit Verteilungen mit dem RPM -Paket -Manager. Durch die Kenntnis des Toolsets ist es viel einfacher und normalerweise sicherer, die Aufgaben in der Softwareumgebung eines bestimmten Systems zu lösen, zu aktualisieren und zu ändern.
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Linux -Konfigurationsdateien: Top 30 am wichtigsten
- Linux -Download
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…
- So installieren Sie Yum unter Linux
- Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
- Beste Linux -Distribution für Entwickler
- Mint 20: Besser als Ubuntu und Microsoft Windows?
- « So richten Sie SSL/TLS mit Apache HTTPD auf Red Hat ein
- So ändern Sie das Passwort auf Ubuntu 18.04 Bionic Beaver Linux »