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