Start · Sprachen · PHP · Referenz · rpminfo

rpminfo

Funktion

Liest und gibt Metadaten (Header-Informationen) einer RPM-Paketdatei zurück.

Kategorie: misc

Signatur

rpminfo(string $filename): array|false

Beschreibung

rpminfo() öffnet eine RPM-Datei und liest deren Header-Metadaten aus. Die Funktion liefert ein assoziatives Array mit Informationen wie Paketname, Version, Release, Architektur, Beschreibung, Abhängigkeiten und weiteren RPM-Headern zurück.

Die Funktion ist vor allem in Server-Administrations- oder Deployment-Skripten nützlich, die auf Linux-Systemen (insbesondere RPM-basierten Distributionen wie RHEL, CentOS, Fedora) installierte oder zu prüfende Pakete analysieren müssen, ohne auf Shell-Befehle zurückgreifen zu müssen.

Die Funktion ist Teil der rpmreader-PECL-Erweiterung (auch bekannt als php-rpm) und steht nicht in einer Standard-PHP-Installation zur Verfügung – die Erweiterung muss separat installiert und aktiviert werden.

Das zurückgegebene Array enthält die Werte zu den jeweiligen RPM-Tag-Konstanten als Schlüssel (z. B. RPMTAG_NAME, RPMTAG_VERSION, RPMTAG_ARCH usw.). Ist die Datei nicht lesbar oder kein gültiges RPM-Paket, wird false zurückgegeben.

Parameter

Name Typ Default Beschreibung
$filename Pflicht string Pfad zur RPM-Datei (lokal), deren Metadaten ausgelesen werden sollen.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein assoziatives Array mit den RPM-Header-Metadaten zurück. Die Schlüssel entsprechen den RPM-Tag-Konstanten (z. B. RPMTAG_NAME, RPMTAG_VERSION, RPMTAG_RELEASE, RPMTAG_ARCH). Bei einem Fehler (z. B. Datei nicht vorhanden oder kein gültiges RPM) wird false zurückgegeben.

Beispiele

Basisinformationen eines RPM-Pakets ausgeben

<?php
$info = rpminfo('/tmp/example-1.0-1.x86_64.rpm');

if ($info === false) {
    echo "Fehler: Datei konnte nicht gelesen werden oder ist kein gültiges RPM.\n";
} else {
    echo 'Name:         ' . $info[RPMTAG_NAME]    . "\n";
    echo 'Version:      ' . $info[RPMTAG_VERSION] . "\n";
    echo 'Release:      ' . $info[RPMTAG_RELEASE] . "\n";
    echo 'Architektur:  ' . $info[RPMTAG_ARCH]    . "\n";
    echo 'Zusammenfassung: ' . $info[RPMTAG_SUMMARY] . "\n";
}
Name: example Version: 1.0 Release: 1 Architektur: x86_64 Zusammenfassung: Ein Beispiel-Paket

Alle verfügbaren Metadaten eines RPM-Pakets anzeigen

<?php
$rpmFile = '/tmp/example-1.0-1.x86_64.rpm';
$info = rpminfo($rpmFile);

if ($info !== false) {
    foreach ($info as $tag => $value) {
        if (is_array($value)) {
            echo $tag . ': ' . implode(', ', $value) . "\n";
        } else {
            echo $tag . ': ' . $value . "\n";
        }
    }
} else {
    echo "Konnte RPM-Informationen nicht lesen.\n";
}

// Wichtig · Fallstricke

Erweiterung erforderlich: rpminfo() ist nicht Teil der PHP-Kerninstallation. Die PECL-Erweiterung rpmreader bzw. rpm muss installiert und in der php.ini aktiviert sein (extension=rpm.so).

Plattformabhängigkeit: Die Funktion ist nur auf Systemen sinnvoll einsetzbar, die RPM-Pakete unterstützen (z. B. Red Hat, CentOS, Fedora, SUSE). Auf Debian/Ubuntu-Systemen ist die Erweiterung in der Regel nicht verfügbar oder nutzlos.

Fehlerbehandlung: Da die Funktion bei Fehlern lediglich false zurückgibt, sollte der Rückgabewert stets mit === false geprüft werden. Eine genauere Fehlerursache ist über error_get_last() abrufbar.

Siehe auch