Tworzę .desktop
pliki do użycia w Unity Launcher.
Mam własną lokalizację w katalogu domowym, w której umieszczam pliki wykonywalne ( ~/usr/bin/
), które są poprawnie dodane do mojej PATH
zmiennej środowiskowej w moim .pam_environment
pliku, jak określono w odpowiedniej dokumentacji Ubuntu .
Oto zawartość mojego .pam_environment
pliku:
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/
Co powoduje, że moja PATH
zmienna jest następująca:
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/
Wiem, że jest dodawany dwukrotnie, ale wszystko w .pam_environment
pliku wydaje się dodawane dwukrotnie, bez względu na to, kiedy używa się poprawnej składni zalecanej w dokumentacji Ubuntu, do której się odwoływałem.
To jest jeden przykład problemu (zdarza się we wszystkich przypadkach). Mam skrypt (wywoływany eclipse
), w ~/usr/bin/
którym działa Eclipse IDE.
Mogę otworzyć dowolny terminal i po prostu pisać, eclipse
i działa dobrze, jak można się spodziewać.
Ale podczas korzystania z następującego .desktop
pliku:
#!/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
Dostaję błąd:
Ale kiedy zmieniam Exec=
linię na:
Exec=/home/ben/usr/bin/eclipse
działa idealnie.
Dokumentacja oficjalnych programów uruchamiających Unity i plików na pulpicie sugeruje, że powinno to działać:
Exec to ścieżka do pliku wykonywalnego. Pełna ścieżka do pliku wykonywalnego musi być użyta tylko w przypadku, gdy nie znajduje się w żadnej ze ścieżek określonych w zmiennej $ PATH. Na przykład wszystkie pliki znajdujące się w ścieżce / usr / bin nie muszą mieć pełnej ścieżki określonej w polu Exec, a jedynie nazwę pliku.
Wszelkie sugestie dotyczące tego, co się dzieje?
Odpowiedzi:
Tylda nie jest rozwijana w
.pam_environment
sposób, w jaki byłby w skrypcie profilu, a pliki pulpitu nie rozszerzają powłoki w swoichExec
wierszach tak jak powłoka, więc szuka pliku o nazwie dosłownie~/usr/bin/eclipse
, co oczywiście nie istnieje.Zamień tyldę w przypisaniu PATH na $ {HOME} i wydaje się, że działa.
źródło
$PATH
odbywa się dwukrotnie?To, co zostało powiedziane w dokumentacji Ubuntu, ma sens, jednak w części „nie jest już zalecana” brakuje pewnych szczegółów. Z tego powodu moja odpowiedź będzie polegać na użyciu jednej z tych metod. Ponadto: jest już używany do tego samego celu.
Szybko odwiedź plik ./.profile.
Mój zawiera to:
Jak widać w ostatniej sekcji tego pliku (wiersze poniżej # ustaw PATH, aby zawierał prywatny kosz użytkownika, jeśli istnieje), jest to już zrobione. Więc jeśli chcesz dodać coś do zmiennej $ PATH, po prostu zrobiłbyś to samo. W dokumentacji wspomniano, że będzie to uruchamiane przy każdym uruchomieniu systemu.
W twoim przypadku wystarczy dodać:
W tym momencie zaczynam myśleć, że jedynym powodem, dla którego ta metoda nie jest już zalecana, jest skryptowanie przy uruchamianiu, które jest bardzo wrażliwe na drobne błędy. Jednak gdy ktoś pracuje z czymś takim, niewielki błąd można naprawić, zmieniając plik z powrotem na taki, jaki był.
Jeśli nie masz pewności, jak to zrobić:
1) Najpierw naciśnij klawisze CTRL + ALT + F3
2) Zaloguj się, postępując zgodnie z instrukcjami wyświetlanymi na ekranie
3) Wpisz to w wierszu polecenia:
4) usuń te linie: (właśnie je dodaliśmy)
5) naciśnij CTRL + O (jak na Out)
6) naciśnij CTRL + X (jak w eXit)
7) wpisz
exit
i naciśnij ENTER (czasami RETURN)8) teraz naciśnij CTRL + ALT + F7
9) Powinieneś dostać ekran logowania lub pulpit, w zależności od tego, kiedy wystąpił problem. Jeśli nie, naciśnij CTRL + ALT + DEL (czasami CTRL + ALT + DELETE), a system powinien się ponownie uruchomić bezpiecznie.
Mam nadzieję że to pomoże!
źródło