Start · Sprachen · PHP · Referenz · rpmgetsymlink

rpmgetsymlink

Funktion

Gibt das Ziel eines symbolischen Links zurück, der in einem RPM-Paket enthalten ist.

Kategorie: misc

Signatur

rpmgetsymlink(string $path): string|false

Beschreibung

rpmgetsymlink() liest das Ziel eines symbolischen Links, der innerhalb eines RPM-Pakets definiert ist. Die Funktion ist Teil der RPM-Erweiterung für PHP und ermöglicht es, Informationen über symbolische Links zu ermitteln, die ein RPM-Paket auf dem Dateisystem anlegt oder beschreibt.

Die Funktion ist nützlich, wenn man den Inhalt eines RPM-Pakets analysiert und dabei die verknüpften Ziele von Symlinks programmatisch auswerten möchte, ohne das Paket tatsächlich zu installieren. Typische Anwendungsfälle sind Paketverwaltungstools, Installations-Skripte oder Systeme zur Abhängigkeitsanalyse.

Im Erfolgsfall gibt die Funktion einen String mit dem Symlink-Ziel zurück. Falls der angegebene Pfad kein gültiger symbolischer Link im Kontext der RPM-Bibliothek ist oder ein Fehler auftritt, wird false zurückgegeben.

Parameter

Name Typ Default Beschreibung
$path Pflicht string Der Pfad des symbolischen Links, dessen Ziel ermittelt werden soll. Dieser Pfad bezieht sich auf einen Symlink im Kontext der RPM-Datenbank oder eines RPM-Pakets.

Rückgabewert

Typ
string|false
Beschreibung
Gibt einen String mit dem Ziel des symbolischen Links zurück. Im Fehlerfall oder wenn der Pfad kein gültiger symbolischer Link ist, wird false zurückgegeben.

Beispiele

Symlink-Ziel eines RPM-Eintrags auslesen

<?php
// Pfad zu einem symbolischen Link, der in einem RPM-Paket definiert ist
$symlinkPath = '/usr/bin/python';

$target = rpmgetsymlink($symlinkPath);

if ($target !== false) {
    echo "Der symbolische Link '" . $symlinkPath . "' zeigt auf: " . $target . PHP_EOL;
} else {
    echo "Konnte das Symlink-Ziel nicht ermitteln." . PHP_EOL;
}
Der symbolische Link '/usr/bin/python' zeigt auf: /usr/bin/python3

Fehlerbehandlung bei ungültigem Pfad

<?php
$symlinkPath = '/nicht/existierender/pfad';

$target = rpmgetsymlink($symlinkPath);

if ($target === false) {
    echo "Fehler: Kein gültiger symbolischer Link unter '" . $symlinkPath . "' gefunden." . PHP_EOL;
} else {
    echo "Symlink-Ziel: " . $target . PHP_EOL;
}
Fehler: Kein gültiger symbolischer Link unter '/nicht/existierender/pfad' gefunden.

// Wichtig · Fallstricke

Hinweis: Diese Funktion ist Teil der optionalen RPM-Erweiterung (rpmreader bzw. rpm) und steht nur zur Verfügung, wenn PHP mit dieser Erweiterung kompiliert wurde. Sie ist in der Regel nur auf Linux-Systemen mit RPM-Paketverwaltung (z. B. Red Hat, CentOS, Fedora, openSUSE) verfügbar.

Die Dokumentation dieser Funktion in der offiziellen PHP-Dokumentation ist sehr spärlich. Das Verhalten bei bestimmten Randfällen (z. B. relative vs. absolute Pfade) kann von der installierten Version der RPM-Bibliothek abhängen. Es empfiehlt sich, den Rückgabewert stets mit === false zu prüfen, da ein leerer String ebenfalls ein gültiges Ergebnis sein könnte.