GNU/Linux >> Znalost Linux >  >> Ubuntu

Zdá se, že soubory na ploše nepoužívají $path správně?

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.


Ubuntu
  1. Přidat novou vlastní relaci?

  2. Složka a soubory na ploše zmizely?

  3. Jak zkopírovat soubory z Wine na plochu?

  1. Jak správně přidat cestu k cestě?

  2. Jak používat Ubuntu Server Disk Top

  3. Používat zařízení přes SSH?

  1. Vysvětleno:Kterou verzi Ubuntu bych měl použít?

  2. Jak čistě přidat do $path?

  3. Použití / při použití cd