Signatur
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
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";
}
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.