Ich erstelle .desktop
Dateien zur Verwendung im Unity Launcher.
Ich habe meinen eigenen Speicherort in meinem Ausgangsverzeichnis, in dem ich meine ausführbaren Dateien ( ~/usr/bin/
) ablege, die meiner PATH
Umgebungsvariablen in meiner .pam_environment
Datei gemäß den Angaben in der entsprechenden Ubuntu-Dokumentation korrekt hinzugefügt wurden .
Dies ist der Inhalt meiner .pam_environment
Datei:
LANGUAGE=en_AU:en_GB:en
LANG=en_AU.UTF-8
LC_NUMERIC=en_AU.UTF-8
LC_TIME=en_AU.UTF-8
LC_MONETARY=en_AU.UTF-8
LC_PAPER=en_AU.UTF-8
LC_NAME=en_AU.UTF-8
LC_ADDRESS=en_AU.UTF-8
LC_TELEPHONE=en_AU.UTF-8
LC_MEASUREMENT=en_AU.UTF-8
LC_IDENTIFICATION=en_AU.UTF-8
PATH DEFAULT=${PATH}:~/usr/bin/
Was dazu führt, dass meine PATH
Variable wie folgt lautet:
ben@ben-HPdv6:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:~/usr/bin/:~/usr/bin/
Ich weiß, dass es zweimal angehängt wird, aber alles in der .pam_environment
Datei scheint zweimal hinzugefügt zu werden, unabhängig davon, welche Syntax in der von mir angegebenen Ubuntu-Dokumentation empfohlen wird.
Dies ist ein Beispiel für das Problem (es tritt in allen Fällen auf). Ich habe ein Skript (genannt eclipse
), in ~/usr/bin/
dem Eclipse IDE ausgeführt wird.
Ich kann jedes Terminal öffnen und einfach tippen eclipse
und es läuft einwandfrei, wie Sie es erwarten würden.
Aber bei Verwendung der folgenden .desktop
Datei:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Eclipse - Juno (4.2)
Icon=/home/ben/.icons/eclipse.svg
Exec=eclipse
Ich erhalte den Fehler:
Aber wenn ich die Exec=
Zeile ändere zu:
Exec=/home/ben/usr/bin/eclipse
es funktioniert einwandfrei.
In der Dokumentation zu Official Unity Launchers und Desktop-Dateien wird empfohlen , dass dies funktioniert:
Exec ist der Pfad zur ausführbaren Datei. Der vollständige Pfad zur ausführbaren Datei darf nur verwendet werden, wenn er sich nicht in einem der in der Variablen $ PATH angegebenen Pfade befindet. Beispielsweise muss für alle Dateien im Pfad / usr / bin nicht der vollständige Pfad im Feld Exec angegeben werden, sondern nur der Dateiname.
Irgendwelche Vorschläge, was passiert?