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?
Antworten:
Die Tilde wird nicht
.pam_environment
wie in einem Profilskript erweitert, und Desktop-Dateien erweitern die Shell-Exec
Zeilen nicht wie die Shell.~/usr/bin/eclipse
Daher wird nach einer Datei gesucht, die im wahrsten Sinne des Wortes benannt ist , was natürlich nicht der Fall ist. ' existiert nicht.Ersetzen Sie die Tilde in der PATH-Zuweisung durch $ {HOME}, und es scheint zu funktionieren.
quelle
$PATH
zweimal vorkommt , damit ich keine weitere Frage stelle ?Was in der Ubuntu-Dokumentation gesagt wird, ist sinnvoll, jedoch fehlt der Abschnitt "Nicht mehr empfohlen" in einigen Details. Aus diesem Grund wird meine Antwort eine dieser Methoden beinhalten. Außerdem: Es wird bereits für genau denselben Zweck verwendet.
Besuchen Sie schnell Ihre ./.profile-Datei.
Meins enthält folgendes:
Wie Sie im letzten Abschnitt dieser Datei sehen können (in den Zeilen unter # wird PATH so gesetzt, dass der private Bin des Benutzers einbezogen wird, falls vorhanden), wird dies bereits ausgeführt. Wenn Sie also der Variablen $ PATH etwas hinzufügen möchten, tun Sie einfach dasselbe. In der Dokumentation wurde erwähnt, dass dies bei jedem Systemstart ausgeführt wird.
In Ihrem Fall müssen Sie nur Folgendes hinzufügen:
An diesem Punkt denke ich, dass der einzige Grund, warum diese Methode nicht mehr empfohlen wird, das Skripting beim Start ist, das sehr empfindlich für kleine Fehler ist. Wenn jedoch jemand mit so etwas arbeitet, kann ein kleiner Fehler einfach dadurch rückgängig gemacht werden, dass die Datei wieder in den ursprünglichen Zustand versetzt wird.
Wenn Sie nicht sicher sind, wie Sie dies tun sollen:
1) Drücken Sie zuerst STRG + ALT + F3
2) Melden Sie sich an, indem Sie der Eingabeaufforderung auf dem Bildschirm folgen
3) Geben Sie dies in die Eingabeaufforderung ein:
4) entferne diese Zeilen: (wir haben sie gerade hinzugefügt)
5) drücke STRG + O (wie in Out)
6) drücke STRG + X (wie in eXit)
7) tippe
exit
und drücke ENTER (manchmal RETURN)8) Drücken Sie jetzt STRG + ALT + F7
9) Sie sollten Ihren Anmeldebildschirm oder Desktop erhalten, je nachdem, wann das Problem aufgetreten ist. Wenn nicht, drücken Sie STRG + ALT + ENTF (manchmal STRG + ALT + ENTF) und Ihr System sollte sicher neu gestartet werden.
Hoffe das hilft!
quelle