Springe zum Hauptinhalt

RPM-Grundlagen

RPM Grundlagen

Begriffe

  • Binär-RPM-Paketfile: enthält alle Daten und Anweisungen zur Installation eines RPM-Paketes (endet auf <arch>. rpm )

# rpm -i bash-3.0-19.2.i386.rpm

  • Binär-RPM-Paket: installiertes Binär-RPM-Paketfile
  • oft synonym verwendete Begriffe: RPM, RPM-Paket, Binär-RPM-Paketfile
  • RPM-Datenbasis (Berkeley DB Format): Infos über alle RPM Pakete im System
  • RPMs werden in vielen Linux-Distributionen benutzt, z.B.
    • Red Hat
    • Fedora Core
    • Scientific Linux
    • SuSE
    • Mandriva
  • nicht auf Linux beschränkt: AIX, Solaris, ...

Namensvergabe und Versionierung

Der Name eines Paketes setzt sich aus dem eigentlichen Namen, der Version und dem Release zusammen: <name>-<version>-<release>

  • Name, Version und Release werden durch - (Minus) getrennt, die Zählung erfolgt von rechts nach links, d.h. innerhalb des Namens kann das Zeichen - (Minus) verwendet werden
  • im Normalfall ist genau ein Paket eines Namens bzw. einer Version bzw. Release auf einem System installiert
  • sollen 2 Versionen einer Software parallel installiert werden, müssen sich diese im Namen unterscheiden
  • Beispiel:
    • gimp-1.2.5-2 und gimp2-2.0.1-1
  • Version korrespondiert mit der Softwareversion
  • Release kennzeichnet die Release der Version eines Paketes

Warnung! Ist das EPOCH-Tag in einem Paket gesetzt, dann wird das Paket mit dem höchsten EPOCH-Wert als aktuelles Paket installiert. Version und Release werden dabei ignoriert.

Paketaufbau

  • Metadata (Header)
    • Name, Version, Release
    • (Kurz) Beschreibung, URL, Lizenz, Klassifizierung
    • Ersteller, Buildhost und -datum, Grösse (installiert)
  • Files
    • Files und Verzeichnisse mit absolutem Pfad
    • Eigentümer und Umask
    • in einem cpio -Archiv verpackt
  • Scripte
    • Aktionen, welche zur Installation bzw. Deinstallation ausgeführt werden
    • Shellskripte, Perl, ...
  • Abhängigkeiten
    • Welche zusätzlichen Pakete, Programme und Bibliotheken benötigt das Paket?
    • Welche Komponenten stellt das Paket zur Verfügung?
    • Ersetzt dieses Paket ein anderes Paket?

RPM-Paketmanager (Kommando rpm)

  • Installation
  • Deinstallation
  • Update
  • Verifizieren
  • Abfragen

RPM-Anfragen

Informationen zu installierten RPM-Paketen werden in der RPM-Datenbank eines Systems gespeichert.

Syntax Bedeutung
rpm -qa Liste alle installierten Pakete auf
rpm -qa "*java*" Liste alle installierten Pakete mit dem String =java im Namen
rpm -qf /bin/ls Zu welchem Paket gehört das File /bin/ls
rpm -qi kernel Zeige die Headertags des Paketes kernel
rpm -ql kernel Liste alle Files, welche zum Paket kernel gehören
rpm -q --qf "%{arch}" kernel Zeige das Architektur-Tag des Paketes kernel, Querystring unterstützt printf(3) -Format
rpm -q --scripts flash-plugin Zeige Scripte, welche bei Installation und Deinstallation des Paketes flash-plugin ausgeführt werden
rpm -q --requires kernel Welche Pakete und Programme erfordert das Paket kernel ?
rpm -q --whatprovides libxml2 Welches Paket stellt die libxml2 bereit?
rpm -q --whatrequires libxml2 Welche Pakete benötigen die libxml2?
rpmverify ntp Überprüfe die Integrität des installierten Paketes ntp (Files, Filegrösse, Modus, MD5-Summe, ...)
rpm -q --qf "%{EPOCH}\n" kdebase EPOCH-Wert des Paketes kdebase

RPM-Pakete: Installation, Aktualisierung, Deinstallation

installiere Paket curl vom FTP-Server

# rpm -ihv "http://wftp.tu-chemnitz.de/pub/linux/fedora-core/4/i386/os/Fedora/RPMS/curl-7.13.1-3.i386.rpm"

installiere aktuelle Paketversion von curl

# rpm -Uhv "http://wftp.tu-chemnitz.de/pub/linux/fedora-core/4/i386/os/Fedora/RPMS/curl-7.13.1-5.fc4.i386.rpm"

deinstalliere Paket curl

# rpm -e curl

Informationen zu RPM