Die Anwendung schlägt fehl, wenn sie sich nicht in ihrem Verzeichnis befindet?

Die Anwendung schlägt fehl, wenn sie sich nicht in ihrem Verzeichnis befindet?

Ich versuche, DeaDBeeF, einen Musikplayer, auszuführen. Er funktioniert einwandfrei, wenn ich mich in seinem Verzeichnis befinde, aber wenn ich mich irgendwo anders befinde, wird mir angezeigt, dass das Ausgabe-Plugin nicht gefunden wurde. Gibt es eine Möglichkeit, ihn dazu zu bringen, in seinem eigenen Verzeichnis statt in meinem aktuellen Arbeitsverzeichnis zu suchen?

Antwort1

Das klingt nach einem Fehler in diesem Programm. Sie können ihn wahrscheinlich nicht beheben, ohne den Quellcode zu ändern, aber Sie können ihn leicht umgehen, zum Beispiel mit einem Shell-Skript:

#!/bin/sh
cd /path/to/program
exec ./program "$@"

Speichern Sie dies in /usr/local/binund legen Sie die richtigen Berechtigungen fest:

chmod 755 /usr/local/bin/myscript
chown root:root /usr/local/bin/myscript

und starten Sie dann dieses Skript anstelle der ausführbaren Programmdatei.

Eine Einschränkung dieses Ansatzes besteht darin, dass Sie Dateien im aktuellen Verzeichnis nicht mehr einfach durch Eintippen ihres Namens abspielen können. Anstelle von deadbeef myfile.mp3können Sie verwenden deadbeef $PWD/myfile.mp3(machen Sie das so deadbeef "$PWD/myfile.mp3", wenn der Name des aktuellen Verzeichnisses \[?*oder Leerzeichen enthält).

verwandte Informationen