GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Einsteigerleitfaden für die Linux-Softwareverwaltung mit RPM

Wartung von Software mit RPM (Red Hat Package Manager)

RPM ist ein leistungsstarker Software-Manager, der zum Erstellen, Installieren, Abfragen, Überprüfen, Aktualisieren und Deinstallieren einzelner Softwarepakete verwendet werden kann. Ein RPM-Paket besteht aus einem Archiv von Dateien und Paketinformationen wie Name, Version, einer Beschreibung und Informationen über Abhängigkeiten von anderen RPM-Paketen.

RPM ist mehr als ein Red Hat-spezifisches Tool. Viele andere moderne Distributionen wie Ubuntu und SuSE verwenden ebenfalls RPM. Zu den Vorteilen der Verwendung von RPM gehören:

  • Vereinfachte Softwareverteilung, -installation, -aktualisierung und -entfernung
  • Garantiert, dass:
    • Erforderliche Software ist auf dem System installiert.
    • Versionen der vorausgesetzten Software bleiben kompatibel.
    • Lokal modifizierte Konfigurationsdateien werden nicht geblockt, wenn das RPM aktualisiert wird.
    • Lokal modifizierte Konfigurationsdateien werden mit dem Suffix „.rpmsave“ gespeichert, wenn das Paket später gelöscht wird.
  • Ermöglicht die Zertifizierung, dass die installierte Software nicht geändert, modifiziert, beschädigt oder in irgendeiner Weise verändert wurde.

RPM speichert Informationen über installierte Pakete im Verzeichnis „/var/lib/rpm“. Bestandteile des RPM-Tools sind:

  • Eine benutzerdefinierte Datenbank mit Informationen über die gesamte auf dem System installierte Software, gesammelt von den einzelnen RPMs.
  • Eine ausführbare „/bin/rpm“-Datei.
  • Über das Internet zugängliche Repositories verfügbarer RPM-Pakete.

Arten von RPM-Paketen

RPM-Pakete gibt es in zwei Kategorien:
1. Quelle
2. binär

Quelldrehzahl

Ein Quell-RPM ist immer daran zu erkennen, dass der Dateiname mit der Zeichenfolge „.src.rpm“ endet. In einem Quell-RPM befinden sich nicht nur die ursprünglichen Quellcodedateien des Programms, sondern auch Skripte, die es ermöglichen, den Code automatisch neu zu kompilieren, automatisch zu installieren und automatisch zu entfernen. Es gibt keine ausführbaren Endbenutzerdateien in einem Quell-RPM. Normalerweise sind nur Entwickler an einem Quell-RPM interessiert.

Binäre Drehzahl

Ein binäres RPM enthält die Endbenutzerkomponenten eines RPM. Binäre RPM-Dateinamen identifizieren die Hostarchitektur für die Inhalte. Zum Beispiel die binäre RPM-Datei:

bash-3.1-16.1.x86_64.rpm

– enthält Dateien, die nur auf einer 64-Bit-CPU mit Intel X86-Architektur verwendet werden können. Andere gängige Architekturwerte sind „i386“ für 32-Bit-Intel-Hosts. Einige binäre RPMs können auf jeder CPU-Architektur installiert werden, da ihre Dateien auf jedem Host funktionieren; Ein Beispiel für diese „.noarch.rpm“-Pakete ist das „tzdata“-RPM, das Informationen über Weltzeitzonen enthält. Um Ihr System auf die neueste Version eines Pakets zu aktualisieren, benötigen Sie das neueste binäre RPM dafür.

RPM-Namensschema

Jedes RPM-Paket ist in einer einzelnen Datei enthalten. Der Dateiname hat mehrere Felder, um den Inhalt des Pakets vollständig zu identifizieren. Während sich die RPM-Tools selbst nicht auf den Dateinamen selbst verlassen, sollten Sie die Dateinamenkonvention verstehen, damit Sie das richtige Paket identifizieren oder herunterladen können.

Hier ist ein Beispiel für einen RPM-Dateinamen:

bash-3.1-16.1.x86_64.rpm

Dieses RPM ist für die BASH-Shell („/bin/bash“). Der Dateiname setzt sich aus mehreren Teilen zusammen:

[name]-[version]-[release].[arch].rpm

wo:

  • [Name] ist der Name des Programms oder Pakets. Der [Name] wird normalerweise vom Autor des Programms vergeben. In unserem Beispiel entschieden sich die Entwickler aus Gründen, die ihnen amüsant erschienen, ihr Produkt „bash“ zu nennen.
  • [Version] gibt an, welche Edition der Software dieses RPM enthält. Die [Versions]-Nummer wird vom Autor des Programms vergeben. Anhand der [Versions]-Nummer lässt sich feststellen, welche Version der Quellen des Autors zur Generierung des RPM verwendet wurde.
  • [Veröffentlichung] liefert die Editionsnummer der RPM-Datei selbst und nicht die Version der Quelldateien des Autors. Ein aktualisiertes RPM kann herausgegeben werden, um eine gepatchte Version der Originalsoftware des Autors bereitzustellen. Der Patch muss nicht vom ursprünglichen Entwickler stammen, daher wird RPM [Release] statt [Version] inkrementiert.
  • [arch] beschreibt den Inhalt des RPM und gibt an, ob diese Datei die Produktquelle (eine „.src.rpm“), architekturunabhängige Dateien (eine „.noarch.rpm“) oder Dateien enthält, die nur auf einem bestimmten Host installiert werden dürfen Typ (ein „.sh.rpm“ funktioniert nur auf einem eingebetteten STRONGHOLD-Prozessor).
Hinweis :Die [Version] wird vom ursprünglichen Autor kontrolliert und die [Veröffentlichung] wird von dem kontrolliert, der das RPM erstellt hat.

Dateien installieren und entfernen

Normalerweise darf nur eine [Version] oder [Release] eines RPM auf einmal installiert werden. Spätere Versionen werden normalerweise mit der RPM-Funktion „-U“ (Update) anstelle der RPM-Funktion „-i“ installiert. Häufige Ausnahmen von der Nur-ein-RPM-Regel sind die Kernel-RPMs. Auf einem System sind üblicherweise mehrere Kernel-Versionen installiert; RPM hat eine Liste, von welchen RPMs möglicherweise mehrere Versionen installiert sind. Um eine Version zu löschen, wenn mehrere installiert sind, müssen Sie den Paketnamen und die Version vollständig angeben.

Auf der x86_64-Architektur ist es üblich, dass sowohl die 32-Bit-RPM-Pakete „.i386“ als auch die 64-Bit-RPM-Pakete „.x86_64“ installiert sind, um sowohl 32-Bit- als auch 64-Bit-Anwendungen zu unterstützen. Normalerweise zeigt RPM die Architektur eines Pakets bei einer Abfrage nicht an, aber Sie können sie manuell anzeigen.

Installation und Entfernung

  • rpm -i oder –install ### (neues RPM installieren; Fehler falls bereits installiert)
  • rpm -U oder –upgrade ### (vorhandenes RPM löschen, falls vorhanden; neu installieren)
  • rpm -F oder –freshen ### (RPM nur aktualisieren, wenn das Paket bereits installiert ist)
  • rpm -e oder –erase ### (entfernen, löschen, löschen)

Allgemeine Optionen

  • Ausgabe :-v (ausführlich – Dateiname), -h (Hash)
  • Voraussetzungen :–nodeps, –replacefiles, –force (ACHTUNG HIER !!!)
  • Umzug :–excludepath, –prefix, –relocate, –badreloc, –root
  • URL-Unterstützung :ftp, http

Beispiele:

rpm -ivh binutils-2.11.90.0.8-12.i386.rpm
rpm -Uvh finger-0.17-9-i386.rpm
rpm -Fvh ftp://updates.redhat.com/current/i386/*.rpm
rpm -e diffutils
rpm -e kernel-enterprise-2.4.9-e.12

Tipps und Tricks

– Verwenden Sie niemals die Option „-U“, um ein neues Kernel-RPM zu installieren.
– Die Update-Funktion „-U“ löscht zuerst das aktuelle RPM vom System und versucht dann, das neue RPM zu installieren. Jedes Problem, das die Installation des neuen RPM verhindert, führt dazu, dass das System nicht mehr bootfähig ist. Das ist nicht das, was Sie wollen, verwenden Sie also immer den „-i“-Schalter, um ein Kernel-RPM zu installieren.

RPM-Befehlsbeispiele zum Abfragen, Installieren, Entfernen und Aktualisieren von Paketen

Abfragen (Pakete und/oder Informationen)

Verwenden Sie eine Abfrage für Informationen zu installierten Paketen. Sie können alle installierten Pakete oder ein einzelnes installiertes Paket abfragen. Sie können auch herausfinden, welches RPM eine bestimmte Datei bereitstellt.

  • rpm -q [Pakete] [Informationen]
  • rpm -qa
  • rpm -q Paketname
  • rpm -qf [Dateiname]
  • rpm -qp [Paketdateiname]

Informationen

default (Paketname)
-i :Allgemeine Informationen
-l :Dateiliste

Beispiele:

rpm -qa
rpm -q kernel -i (information)
rpm -q kernel -l (files contained in package)
rpm -q kernel --requires (prereqs)
rpm -q kernel --provides (capabilities provided by package)
rpm -q kernel --scripts (scripts run during installation and removal)
rpm -q kernel --changelog (revision history)
rpm -q kernel -queryformat format (rpm --querytags for list of options)

Tipps und Tricks

– Bei der Suche nach einem bestimmten RPM-Paket, wenn der genaue Name nicht bekannt ist, wird eine Befehlspipeline wie:

$ rpm -qa | grep foo

wird häufig verwendet. Spätere Versionen des RPM-Tools ermöglichen dies kurz und knapp wie folgt:

$ rpm -qa '*foo*'

Abfragen – Überprüfung (Dateien)

Die RPM-Datenbank enthält viele Attribute zu jeder einzelnen Datei, die von einem RPM installiert wird. Sie können den aktuellen Status der Datei anhand der Informationen überprüfen, die von RPM katalogisiert wurden, als das Paket installiert wurde.

  • rpm -V Paketname
  • rpm -Va (alles überprüfen)
  • rpm -Vf (Dateiname)
  • rpm -Vp (Paketdateiname)

Viele Linux-Distributionen enthalten einen „Prelink ” RPM, das versucht, die Zeit zu verkürzen, die zum Starten einer Anwendung mithilfe einer gemeinsam genutzten Bibliothek erforderlich ist (die meisten Anwendungen verwenden mindestens eine gemeinsam genutzte Bibliothek und möglicherweise Dutzende), indem spezielle Informationen direkt in die Programmdatei einer Anwendung eingefügt werden.

Das Hinzufügen dieser Informationen führt zwar dazu, dass Anwendungen schneller starten, aber die Dateiänderungen machen die meisten Dateiattribute in der RPM-Datenbank ungültig, wie z. B. das Datum der letzten Dateiänderung, die Dateigröße und die MD5-Prüfsumme der Datei.

Abfragen – Verifizierung (Pakete)

Nachfolgend finden Sie einige RPM-Abfragen für Paketüberprüfungen.

  • rpm -import /mnt/cdrom/RPM-GPG-KEY
  • rpm -q gpg-pubkey
  • rpm –checksig m4-1.4.1-11.i386.rpm

Beispiele:

rpm -qf /path/filename (what package owns filename)
rpm -qf /path/filename -i (what does it do)
rpm -qp m4-1.4.1-11.i386.rpm -l (files in m4)
rpm -qp m4-1.4.1-11.i386.rpm --requires (prereqs needed to install m4)
rpm -q --whatprovides glibc.so (what package provides requisite library)


Cent OS
  1. Ein Leitfaden zum Verständnis von Linux-Softwarebibliotheken in C

  2. Weitere Tipps zum Packen Ihrer Linux-Software mit RPM

  3. Linux-RPM-Befehl mit 10 nützlichen Beispielen

  4. Arbeiten Sie mit ZIP-Dateien unter Linux

  5. Anfängerleitfaden für Udev unter Linux

So installieren Sie RPM-Dateien (Pakete) unter CentOS Linux

RPM-Befehle in Linux mit Beispielen

Linux-Paketverwaltung mit YUM und RPM

Linux-Dateiverwaltung über das Terminal

Leitfaden für Anfänger zur MySQL-Benutzerverwaltung

lsof-Befehl unter Linux mit Beispielen