Ich erstelle .desktopDateien 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 PATHUmgebungsvariablen in meiner .pam_environmentDatei gemäß den Angaben in der entsprechenden Ubuntu-Dokumentation korrekt hinzugefügt wurden .
Dies ist der Inhalt meiner .pam_environmentDatei:
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 PATHVariable 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_environmentDatei 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 eclipseund es läuft einwandfrei, wie Sie es erwarten würden.
Aber bei Verwendung der folgenden .desktopDatei:
#!/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?