WikiDer > RPM-Paketmanager
RPM-Paketmanager (oder Drehzahl, ursprünglich Red Hat Paketmanager genannt) ist a Paket-Manager die in erster Linie für die BetriebssystemLinux. RPM installiert, aktualisiert, deinstalliert, überprüft und fragt ab Softwarepakete. RPM ist das Standard-Softwarepaketformat der Linux-Standardbasis.RPM wurde ursprünglich entwickelt von roter Hut vor dem Red Hat Linux, wird aber jetzt von vielen verwendet Linux-Distributionen benutzt. Es ist auch auf einige andere Betriebssysteme portiert, wie z Novell Netware (seit Version 6.5 SP3) und IBM AIX. Die Form, in der es Akronym "RPM" wird heute verwendet, d.h. bedeutet "RUhr pPaket ichanager", ist ein gutes Beispiel für a rekursives Akronym.
Die RPM-Datenbank
Hinter den Kulissen von RPM ist die Op Berkeley DBA basierende DrehzahlDatenbank. Es enthält alle Informationen für jedes installierte Paket. Die Datenbank führt Aufzeichnungen über jeden Stau über RPM installiert. Dadurch können dieselben installierten Dateien problemlos wieder entfernt werden. Was kann passieren, wenn die Datenbank beschädigt wird? Drehzahlprogramm abrupt beendet wird, kann die Datenbank dank der eingebauten doppelt verkettete Liste. Auf Red Hat-Systemen ist die Datenbank in /var/lib/rpm. Eine Liste der Dateien in der Datenbank kann mit dem Befehl gedruckt werden:
user@laptop~ $ U/min -qc U/min
Frontend
Von Linux-Benutzern und Systemadministratoren einbiegen in U/minDateien, die verwendet werden, um Software einfach zu machen aktualisieren, Aktualisierung oder installieren. Das Programm U/min bildet die Grundlage der Paketverwaltungssystem. Darüber ist in der Regel a benutzerfreundlichFrontend, wie lecker oder PaketKit, mit dem ein Benutzer eine Anwendung mit einem einfachen Befehl oder wenigen Mausklicks installieren oder aktualisieren kann.
Die folgenden Tools werden häufig auf RPM-basierten Systemen verwendet:
lecker, verwendet in Yellow Dog Linux, Red Hat Linux und in Fedora.up2date, benutzt in Red Hat Enterprise Linux und in Fedora-Kern.YaST, benutzt in SUSEzypper, benutzt in openSUSE und SUSE Enterprise Linuxurpmi, benutzt in Mandriva Linuxapt-rpm, die RPM-kompatible Version vonapt-get
Paketnamen
Jedes RPM-Softwarepaket in einem Repository hat einen Namen bestehend aus a Etikette oder beschriften und a Erweiterung.rpm.
Etikette
Das Etikett enthält folgende Informationen:
- das Paketnamen
- das Ausführung des Pakets (ein Code, der aus dem Versionskontrollsystem von der ursprünglichen Softwarequelle)
- das Veröffentlichung (die Häufigkeit, mit der eine ähnliche Version des Pakets kompiliert wurde); Darüber hinaus identifiziert dieses Feld oft die geeignete Verteilung, für die es bestimmt ist, z.B. durch Zeichenfolgen wie
mdk(Mandriva Linux),fc4(Fedora-Kern 4),rhl9(Red Hat Linux 9),suse93(SuSE-Linux 9.3) usw. - das die Architektur an oder für die das Paket gesendet wurde gebaut (i386, i686, Athlon, ppc, usw.)
Der Name jedes RPM-Softwarepakets hat normalerweise das folgende Format:
- - . .rpm
Ein Beispiel:
nano-0.98-2.i386.rpm
Das Paketetikett ist in der RPM-Softwarepaketdatei enthalten, stimmt jedoch nicht unbedingt mit dem Namen der Datei überein.
src
Quellcode wird in SRPM-Dateien verpackt und verteilt. Solche Pakete sind zum Erstellen von RPM-Dateien gedacht und gehören keiner bestimmten Architektur an. Sie erhalten daher die architektonische Bezeichnung src (aus dem Englischen "source" = source) Zum Beispiel:
libgnomeuimm2.0-2.0.0-3.src.rpm
noarch
- Skripte
- Neben Software in Form von kompiliertem Code wird viel Software in Form von a . installiert Skriptsprache Für ein Dolmetscher. Skripte hängen nicht von der Architektur der Hardware ab. Auf Unix-Plattformen wird oft Shell-Skripte oder Skripte für perl und Python benutzt. Ein Beispiel ist lecker:
yum-3.4.3-10.fc14.noarch.rpm
- Das Programm besteht aus einem Skript für Python.
- Bibliotheken
- Softwarebibliotheken (Bibliotheken) werden für jede Version in zwei separaten Paketen verteilt. Ein Paket enthält die vorkompilierter Code (das binär), die direkt verwendet werden kann und die andere (die Bibliothek) enthält die Entwicklungsdateien des jeweiligen Pakets, wie z Header-Dateien und der Quellcode der Implementierung. Der Name dieser Bibliothekspakete hat die Zeichenfolge
-entwickelnhinzugefügt, weil diese Pakete nur für Softwareentwickler. Damit die Bibliothek mit anderen Programmen funktioniert, muss die Version des vorkompilierten Codes mit der der Bibliothek übereinstimmen.
- Dokumentation und Multimedia
- Bis zum
noarch.rpmDie Kategorie umfasst auch Bild- und Tondateien sowie Textinformationsdateien, die von anderen Programmen verwendet werden sollen, z.
java-1.7.0-openjdk-javadoc-1.7.0.6-2.3.2.fc12.1.noarch.rpm
- in dem die Name des Pakets
java-1.7.0-openjdk-javadoc, das Ausführung des Pakets1.7.0.6und der Veröffentlichung des Pakets2.3.2.fc12.1ist.
Vor- und Nachteile des RPM-Systems
Zu den häufig genannten Vorteilen bei der Verwendung von RPM-Paketen gegenüber anderen Methoden zum Sammeln und Installieren von Software gehören:
- Programme werden immer auf die gleiche Weise installiert.
- Das Deinstallieren von Programmen ist einfach.
- Popularität: Verfügbarkeit vieler Pakete, auch wenn eine Neukompilierung für eine andere Distribution erforderlich ist.
- Nicht interaktive Installation: Dies erleichtert die Automatisierung der Installation.
- Original-Quelldateien bereitgestellt: Dies ermöglicht die Überprüfung.
- Kryptografische Verifizierung mit GPG oder md5.
- DeltaRPMs, die das RPM-Äquivalent von . sind Patch-Dateien, kann mit bereits von RPM installierten Paketen kombiniert werden, sodass Updates durchgeführt werden können. Dies ist eine viel bequemere Möglichkeit, von RPM installierte Software zu aktualisieren, da DeltaRPM nicht das ursprüngliche RPM-Paket benötigt, um das Update durchzuführen.
Häufig genannte Nachteile sind:
- Es gibt manchmal (rückwärts) inkompatible Änderungen im Paketformat.
- Die Dokumentation ist unvollständig und/oder veraltet.
- Das Erstellen von RPM-Paketen hat eine steile Lernkurve.
- Abhängigkeiten von Paketversionen widersprechen sich manchmal, je nach verwendeter Linux-Distribution.
- "Normale" Programme sind nicht in der Lage, RPM-Pakete zu extrahieren, wie dies bei possible möglich ist tgz-Staus. Es ist jedoch zu beachten, dass die Tarball aus dem Quellcode des Programms "rpm" a Shell-Skript enthält - rpm2cpio.sh - die in der Lage ist, die "cpio"Archivieren Sie einen Teil einer RPM-Datei (nur mit "od", "ausdrücken", "dd" und "gunzip").
RPM wurde auch wegen mangelnder Konsistenz von Paketnamen und Inhalten kritisiert, was die automatische Abhängigkeitsbehandlung erschweren kann. Dies ist jedoch kein spezifisches Problem des RPM-Systems, da es sich um ein Koordinationsproblem zwischen den großen Linux-Distributionen handelt, die RPM als Paketverwaltungssystem verwenden, wie Red Hat Linux, SuSE und Mandriva Linux. Bei Verwendung von RPM-Paketen aus einer bestimmten Distribution (sagen wir Red Hat Linux) oder RPM-Paketen, die für eine bestimmte Distribution gebaut wurden (beispielsweise Freshrpms für Red Hat Linux) kann ein automatischer Abhängigkeitstest dank der Verwendung von Tools wieYellow Dog Updater modifiziert) oder "passen" (Erweitertes Verpackungstool) (siehe unten). Exklusives Tool für Mandriva Linux ist "urpmi", das bei der sogenannten Hölle von Abhängigkeiten.
Drittanbietersoftware
Wie ein U/minDatei einiger Software fehlt in der Repositorys von a Linux-Distribution, so bei proprietäre Software oft der Fall ist, dann kann diese Software oft als Drittanbietersoftware von der Anbieterseite heruntergeladen einbiegen in. Stellt ein Lieferant eine geeignete U/minDatei, dann kann die Software mit dieser Datei installiert werden. Wenn ein Lieferant nicht geeignet ist U/minDatei kann die Software möglicherweise von einem Tarball aufgebaut werden.
Ausschüttungen
Fast alle Linux-Distributionen mit einem RPM Package Manager sind Gabeln von Fedora, Mandrivac oder SUSE. Es gibt Unterschiede zwischen den Paketmanagern verschiedener Versionen dieser Distributionen. Software von Drittanbietern ist oft anders U/minDateien, die für verschiedene Linux-Distributionen wie Red Hat, Fedora, SUSE oder Mandriva angeboten werden.
- Wissenschaftliches Linux, CentOS, fuduntu und BLAG sind Beispiele für Gabeln von Fedora und Bräuchen
leckerwenn Befehlszeile Frontend. - Mageia und PCLinuxOS sind von Mandriva abgeleitet und verwenden
urpmials Kommandozeilen-Frontend.
Paketinformationen
Die Suchfunktionen des RPM-Programms können Auskunft über ein Paket geben online angefordert werden. Mit dem Befehl:
user@laptop~ $ U/min -qpi <Name oder URL von U/min-Datei>
Informationen über Inhalt und Herkunft der RPM-Datei können abgerufen werden.
Die Zuordnung:
user@laptop~ $ rpm -qp --erfordert Datei.rpm
druckt eine Liste der Versionen der Pakete, die auf dem System installiert werden sollen. Diese Informationen können für die Installation der Software wichtig sein.
RPMs erstellen
Das "Rezept" zum Erstellen eines RPM-Pakets ist a Spezifikationsdatei. Spezifikationsdateinamen enden auf ".spec" und diese Dateien enthalten den Paketnamen, die Version, die RPM-Revisionsnummer, Schritte zum Erstellen, Installieren und Bereinigen von Paketen sowie a Änderungsprotokoll (= Liste der Änderungen). Auf Wunsch können mehrere Pakete aus einer einzigen RPM-Spezifikationsdatei zusammengestellt werden. RPM-Pakete werden mit "rpmbuild" erstellt.
Externe Links
- (und) RPM-Manpage
- (und) Homepage des RPM-Paket-Managers
- (und) RPM-Anleitung - umfangreiche Dokumentation der Fedora Projekt
- Bailey, Ed, 2000: (und) Max. U/min, eine veraltete, aber beliebte Referenz.
- (und) Paketdateiformat - Linux Standards Base
- (und) Paketieren von Software mit RPM, Teil 1: Pakete erstellen und verteilen - Handbuch mit Beispiel von IBM
- (und) Lernen Sie Linux, 101: RPM- und YUM-Paketverwaltung - Dokumentation von IBM
- (und) PackageKit-Hauptseite - GUI für ein Paketverwaltungssystem für GNOME
Weiterlesen
- Eric Foster Johnson, 2003: Red Hat RPM-Leitfaden (ISBN 0764549650 ), eine vollständige, aktuelle Anleitung zum Erstellen von RPM-Paketen. (auf Englisch)