Я створюю .desktop
файли для використання в запуску Unity Launcher.
У мене в моєму домашньому каталозі є власне місце розташування, куди я поміщаю свої виконувані файли ( ~/usr/bin/
), які правильно додаються до моєї PATH
змінної середовища у моєму .pam_environment
файлі, як зазначено у відповідній документації на Ubuntu .
Це вміст мого .pam_environment
файлу:
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/
В результаті чого моя PATH
змінна така:
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/
Я знаю, що додається двічі, але все, що .pam_environment
здається, у файлі здається, що додається двічі незалежно від того, що при використанні правильного синтаксису, рекомендованого у цій документації на Ubuntu, на яку я посилався.
Це один із прикладів проблеми (це відбувається з усіма випадками). У мене є сценарій (званий eclipse
), в ~/usr/bin/
якому запускається IDE Eclipse.
Я можу відкрити будь-який термінал і просто набрати, eclipse
і він працює нормально, як ви очікували.
Але при використанні наступного .desktop
файлу:
#!/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
Я отримую помилку:
Але коли я змінюю Exec=
рядок на:
Exec=/home/ben/usr/bin/eclipse
він працює чудово.
Документація офіційних запусків Unity і файлів настільних файлів говорить про те, що це має працювати:
Exec - шлях до виконуваного файлу. Повний шлях до виконуваного файлу повинен використовуватися лише в тому випадку, якщо він не знаходиться в жодному з контурів, зазначених у змінній $ PATH. Наприклад, для будь-яких файлів, що знаходяться всередині шляху / usr / bin, не повинно бути повного шляху, вказаного в полі Exec, а лише їх ім'я файлу.
Будь-які пропозиції щодо того, що відбувається?