Dieser Beitrag behandelt die am häufigsten gemeldeten Fragen zur Vorgehensweise von Enterprise Linux Common Package Manager (RPM). Obwohl es nicht oft verwendet wird, ist rpm ein Muss, wenn Sie vor einem Linux-Interview stehen.
Was ist RPM?
RPM steht für Red Hat Package Manager, der Pakete auf Linux-Distributionen installiert, aktualisiert und entfernt. Es ist ein kostenloses Softwaretool. Ursprünglich von Red Hat für Red Hat Linux entwickelt, wird RPM heute von vielen Linux-Distributionen verwendet. Es wurde auch auf einige andere Betriebssysteme portiert, wie z. B. Suse Linux und IBMs AIX ab Version 5.
Welche Hauptarten von RPM?
Es gibt zwei Haupttypen von RPM-Paketen:binäre (oder Anwendungen) und Quellpakete. Ein binäres RPM wurde für eine bestimmte Architektur kompiliert. Quellcode-RPMs, die den Quellcode für andere Pakete bereitstellen. Der Paketname endet mit dem Suffix src.rpm, wie z als:
Binary Package: xpdf-3.00-11.12.i386.rpm Source code package: xpdf-3.00-11.12.src.rpm
Wie überprüfe ich, ob das Paket installiert ist?
Verwenden Sie die „rpm –q “, um schnell zu überprüfen, ob ein Paket installiert wurde. Zur Überprüfung müssen Sie den Namen des installierten Pakets verwenden, nicht den Namen der RPM-Datei. Sie können auch einen Teil des Paketnamens verwenden. Alternativ können Sie den Befehl „rpm -qa |grep Schlüsselwort verwenden “, wodurch Ihnen viel mehr Pakete angezeigt werden.
Wie erhalte ich weitere Detailinformationen während der Installation eines RPM-Pakets?
Die Syntax für den Befehl ist
# rpm -Uhv package
Dadurch werden #-Zeichen mit der Option -h ausgegeben, und die Option -v gibt ausführliche Informationen aus, während der Befehl ausgeführt wird. Sie können ein Paket mehr als einmal installieren. Der rpm-Befehl wird sich nicht beschweren. Der Upgrade-Vorgang entfernt jedoch alle anderen Versionen eines Pakets. Dies ist ein weiterer Grund, die Upgrade-Option –U zu verwenden.
Wie aktualisiere ich den Kernel?
Aus Sicherheitsgründen sollte ein neuer Kernel mit dem „-i ”-Flag, anstatt mit “-U aktualisiert zu werden " Flagge. Damit ist die Vorgängerversion noch installiert und kann verwendet werden, falls der neue Kernel nicht funktioniert. Beispiel:
# rpm -ivh kernel-2.6.9-78.0.0.0.1.EL4.I686rpm
Wie zeigt man den abgeschlossenen Prozentsatz an, wenn der RPM-Befehl ausgeführt wird?
Die grundlegende Syntax ist:
# rpm -U --percent package
Das –Prozent Die Option gibt Dezimalzahlen aus, die den abgeschlossenen Prozentsatz anzeigen, wenn der Befehl rpm ausgeführt wird. Diese Option ist am nützlichsten, wenn Sie den rpm-Befehl in einen anderen Befehl einbetten, beispielsweise in eine grafische Benutzeroberfläche, die aus einem Perl-, Python- oder Tcl/Tk-Skript erstellt wurde.
Wie sieht der Prozess im Detail aus, um ein RPM-Paket zu installieren?
Sie können den Befehl rpm –U oder den Befehl rpm –i verwenden, um ein Paket zu installieren. Wenn der Befehl rpm ein Paket installiert, durchläuft er eine Reihe von Schritten:
- Überprüfen des Pakets und der Dateien, die es installieren möchte
- Durchführen von Vorinstallationsaufgaben
- Die Dateien dekomprimieren und an den richtigen Orten ablegen
- Durchführen von Nachbearbeitungsaufgaben
- Aktualisieren der RPM-Datenbank
Wie teste ich einen RPM-Befehl?
Der –Test Befehlszeilenoption weist den RPM-Befehl an, den Installations- oder Aktualisierungsprozess zu testen, aber die Datei nicht zu installieren. Zum Beispiel:
# rpm -U --test eruby-devel-0.9.8-2.i386.rpm
Wie installiere oder aktualisiere ich mehrere Pakete gleichzeitig?
Listen Sie einfach jeden Dateinamen in der RPM-Befehlszeile auf. Die grundlegende Syntax lautet:
# rpm -U package1.rpm package2.rpm .. package100.rpm
Wie installiere ich das RPM-Paket in verschiedenen Verzeichnissen?
Das –Präfix und –umziehen Optionen sollten den RPM-Befehl veranlassen, ein Paket an einen neuen Ort zu verschieben. Nicht alle Pakete erlauben jedoch Umzüge. Das grundlegende Format des Befehls mit der Option –prefix ist:
# rpm -U --prefix /new/directory package.rpm
Mit der Option –relocate lautet das Befehlsformat:
# rpm -i --relocate /old/directory=/new/directory package.rpm
Sie können auch das –root verwenden Option, um ein anderes Verzeichnis anzugeben, von dem angenommen wird, dass es sich beim RPM-Befehl um das Root- oder /-Verzeichnis des Systems handelt. Dies bewirkt, dass der Befehl rpm Dateien unter dem neuen Stammverzeichnis installiert, anstatt in Systemverzeichnissen unter /. Diese Option ist am nützlichsten, um die Installation eines vollständigen Systems unter einem Testverzeichnis zu testen. Der Befehl sollte das folgende Format verwenden:
# rpm -U --root /tmp --dbpath /var/lib/rpm package.rpm
Wie überspringe ich das Skript, wenn ich ein RPM-Paket installiere/entferne?
Als Teil der Paketinstallation sowie der Entfernung kann das RPM-Paket Skripte enthalten, die der RPM-Befehl ausführen sollte. Dazu gehören Skripts vor und nach der Installation sowie Skripts vor und nach der Deinstallation. Diese Skripts können Optionen wie das automatische Konfigurieren der Anwendung basierend auf der Zielumgebung ausführen. Die folgende Tabelle fasst diese Optionen zusammen.
Option | Nutzung |
---|---|
–nopre | Vorinstallationsskripte überspringen. |
–nopost | Skripte nach der Installation überspringen. |
–nopreun | Skripte vor der Deinstallation überspringen. |
–nopostun | Skripte nach der Deinstallation überspringen. |
–noscripts | Alle Skripte überspringen; identisch mit –nopre, –nopost, –nopreun und –nopostun. |
Während der Installation können Sie den Befehl rpm anweisen, nicht alle Trigger auszuführen oder bestimmte Trigger nicht auszuführen. Die –Nichtauslöser Option weist den RPM-Befehl an, alle Trigger zu überspringen.
Option | Nutzung |
---|---|
–nottriggerin | Installationsauslöser überspringen. |
–notriggerun | Deinstallationsauslöser überspringen. |
–notriggerpostun | Trigger nach der Deinstallation überspringen. |
–nicht auslöst | Alle Auslöser überspringen; dasselbe wie –notriggerin, — notriggerun und — notriggerpostun. |
Was sind Optionen zum Ignorieren bei RPM?
Der rpm-Befehl unterstützt mehrere Ignorieren-Optionen, die dem Befehl mitteilen, einen Aspekt eines Pakets zu ignorieren, über den er sich normalerweise beschweren würde.
- Der –ignorearch Die Option weist den Befehl rpm an, die Architektur des Pakets zu ignorieren und das Paket zu installieren, selbst wenn die Architektur des Pakets und die Architektur Ihres Systems nicht übereinstimmen. Dies ist eine sehr gefährliche Option.
- Die –ignoreos Befehlszeilenoption weist den Befehl rpm an, das Betriebssystem zu ignorieren. Auch dies ist wahrscheinlich in den meisten Situationen keine gute Idee.
- Die –ignorieren Die Option weist den Befehl rpm an, eine Überprüfung Ihrer Festplatte zu ignorieren oder zu überspringen, um sicherzustellen, dass genügend Speicherplatz für die Installation des Pakets vorhanden ist. Warnung :Verwenden Sie die Option –ignoresize nicht, wenn Sie eine fast volle Festplatte haben, insbesondere für eine Root- oder /-Partition.
- Der –nodigest Die Option weist den RPM-Befehl an, den Test des Digest zu überspringen, den speziellen Wert, der dabei hilft, die Korrektheit des Pakets zu überprüfen.
- Die –nosignature Die Option weist den RPM-Befehl an, den Test des Digests, des verschlüsselten Schlüssels, zu überspringen, der auch dabei hilft, die Korrektheit des Pakets zu überprüfen.
Wie installiere/aktualisiere ich das RPM-Paket über FTP?
Die gemeinsame Syntax wie folgt:
# rpm -i ftp://username:[email protected]/pub/rpms/sample_rpm.src.rpm
Wie installiere/aktualisiere ich das RPM-Paket über HTTP?
Ähnlich wie beim Zugriff auf eine Datei über FTP müssen Sie dem rpm-Befehl eine URL übergeben, die die Datei identifiziert. Zum Beispiel:
# rpm –i http://ftp.redhat.com/pub/contrib/noarch/SRPMS/Squeak-sources-3-1.src.rpm
Wie entferne ich mehrere Pakete gleichzeitig?
Die grundlegende Syntax lautet:
# rpm -e package1.rpm package2.rpm .. package100.rpm
Wie listet man die Dokumentationsdateien für ein Paket auf?
Die grundlegende Syntax ist:
# rpm –qd package_name
Wie listet man die Dateien in einem Paket auf?
Die grundlegende Syntax ist:
# rpm –ql package_name
Wie listet man die Skripte in einem Paket auf?
Die grundlegende Syntax ist:
# rpm -q --scripts package_name
Wie liste ich auf, was sich für ein Paket geändert hat?
Das grundlegende Format des Befehls ist:
# rpm -q --changelog package_name
Wie listet man die zuletzt installierten Pakete auf?
Die grundlegende Syntax ist:
# rpm -qa --last
Der folgende Befehl zeigt mehr oder weniger als zehn Zeilen an.
# rpm -qa --last | head
Wie erstelle ich benutzerdefinierte Abfragen?
Die grundlegende Syntax des Abfrageformats ist %{tag_name}. Zum Beispiel:
# rpm -q --qf "%{N}.%{V}--%{R}.%{ARCH}\n" kernel-smp
Der obige Befehl zeigt die vollständigen Informationen des Kernel-smp-Pakets nach Ihren Wünschen an. Beispiel:
# rpm -q --qf "%{N}.%{V}--%{R}.%{ARCH}\n" kernel-smp kernel-smp.2.6.9--67.0.0.0.1.EL.i686
Was sind Tags von Paketinformationen, die von RPM unterstützt werden?
Abfrage-Tags für Paketinformationen:
Tag | Hält |
---|---|
NAME | Paketname |
VERSION | Versionsnummer |
FREIGABE | Versionsnummer |
ZUSAMMENFASSUNG | Einzeilige Zusammenfassung des Paketinhalts |
BESCHREIBUNG | Beschreibender Text über das Paket |
BAUZEIT | Zeitpaket wurde erstellt |
BUILDHOST | Host-Paket wurde erstellt auf |
GRÖSSE | Größe aller regulären Dateien in der Nutzlast |
LIZENZ | Lizenzpaket wurde veröffentlicht unter |
GRUPPE | Beschreibender Gruppen- oder Kategoriename für das Paket |
Betriebssystem | Betriebssystempaket wurde erstellt für |
ARCH | Architektur, wie i386 |
QUELLE | Das zugehörige Quell-RPM |
CHANGELOGTIME | Array von Changelog-Zeiten |
LOGNAME ÄNDERN | Array von Changelog-Namen |
LOGTEXT ÄNDERN | Array von Changelog-Texteinträgen |
PREIN | Skript vorinstallieren |
POSTIN | Post-Installationsskript |
PREUN | Skript vor der Deinstallation |
POSTUN | Post-Deinstallationsskript |
PLATTFORM | Plattform |
Wie überprüfe ich installierte RPM-Pakete?
Die grundlegende Syntax ist:
# rpm -V verify_options package_name
Um Ihr gesamtes System zu überprüfen, verwenden Sie das -a Option.
Wie bestimme ich, welche Fähigkeiten ein Paket benötigt?
Die grundlegende Syntax ist:
# rpm -q query_options --requires packages
Wie überprüfe ich, was mit einem bestimmten Paket in Konflikt steht?
Die grundlegende Syntax ist:
# rpm –q query_options --conflicts packages