Vytvářím .desktop
soubory pro použití v Unity Launcher.
Mám své vlastní umístění ve svém domovském adresáři, kam ukládám své spustitelné soubory (~/usr/bin/
), který je správně přidán do mé PATH
proměnná prostředí v mém .pam_environment
soubor, jak je uvedeno v příslušné dokumentaci Ubuntu.
Toto je obsah mého .pam_environment
soubor:
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/
Výsledkem je moje PATH
proměnná je následující:
[email protected]:~$ 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/
Vím, že je připojen dvakrát, ale cokoliv v .pam_environment
Zdá se, že soubor byl přidán dvakrát bez ohledu na to, co při použití správné syntaxe doporučené v dokumentaci Ubuntu, na kterou jsem odkazoval.
Toto je jeden příklad problému (stává se to ve všech případech). Mám skript (nazvaný eclipse
) v ~/usr/bin/
na kterém běží Eclipse IDE.
Mohu otevřít jakýkoli terminál a jednoduše napsat eclipse
a běží dobře, jak byste očekávali.
Ale při použití následujícího .desktop
soubor:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Eclipse - Juno (4.2)
Icon=//eadn-wc01-5196795.nxedge.io/home/ben/.icons/eclipse.svg
Exec=eclipse
Zobrazuje se mi chyba:
Ale když změním Exec=
řádek na:
Exec=/home/ben/usr/bin/eclipse
funguje to perfektně.
Dokumentace oficiálních spouštěčů Unity a souborů Desktop naznačuje, že by to mělo fungovat:
Exec je cesta ke spustitelnému souboru. Úplná cesta ke spustitelnému souboru musí být použita pouze v případě, že se nenachází v žádné z cest zadaných v proměnné $PATH. Například u souborů, které jsou v cestě /usr/bin, nemusí být v poli Exec uvedena úplná cesta, ale pouze název souboru.
Nějaké návrhy, co se děje?
Přijatá odpověď:
Vlna se v .pam_environment
nerozbalí jako by tomu bylo ve skriptu profilu a soubory na ploše neprovádějí expanzi shellu na svém Exec
řádky tak, jak by to udělal shell, takže hledá soubor, který se doslova jmenuje ~/usr/bin/eclipse
, který samozřejmě neexistuje.
Nahraďte vlnovku v přiřazení PATH za ${HOME} a zdá se, že to funguje.