GNU/Linux >> Linux Esercitazione >  >> Ubuntu

I file desktop non sembrano utilizzare correttamente $path?

Sto creando .desktop file da utilizzare in Unity Launcher.

Ho la mia posizione nella mia home directory dove metto i miei eseguibili (~/usr/bin/ ) che viene aggiunto correttamente al mio PATH variabile di ambiente nel mio .pam_environment come specificato nella relativa documentazione di Ubuntu.

Questo è il contenuto del mio .pam_environment file:

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/

Che si traduce nel mio PATH variabile essendo la seguente:

[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/

So che è stato aggiunto due volte, ma qualsiasi cosa nel .pam_environment il file sembra essere aggiunto due volte, non importa cosa quando si utilizza la sintassi corretta consigliata nella documentazione di Ubuntu a cui ho fatto riferimento.

Questo è un esempio del problema (succede in tutti i casi). Ho uno script (chiamato eclipse ) in ~/usr/bin/ che esegue Eclipse IDE.

Posso aprire qualsiasi terminale e digitare semplicemente eclipse e funziona bene come ti aspetteresti.

Ma quando si utilizza il seguente .desktop file:

#!/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

Ottengo l'errore:

Ma quando cambio Exec= linea a:

Exec=/home/ben/usr/bin/eclipse

funziona perfettamente.

La documentazione ufficiale di Unity Launcher e dei file desktop suggerisce che dovrebbe funzionare:

Exec è il percorso del file eseguibile. Il percorso completo del file eseguibile deve essere utilizzato solo nel caso in cui non si trovi in ​​nessuno dei percorsi specificati nella variabile $PATH. Ad esempio, tutti i file che si trovano all'interno del percorso /usr/bin non devono avere il percorso completo specificato nel campo Exec, ma solo il nome file.

Qualche suggerimento su cosa sta succedendo?

Risposta accettata:

La tilde non viene espansa in .pam_environment come farebbe in uno script di profilo e i file desktop non eseguono l'espansione della shell sul loro Exec linee come farebbe la shell, quindi sta cercando un file che si chiama letteralmente ~/usr/bin/eclipse , che ovviamente non esiste.

Sostituisci la tilde nell'assegnazione PATH con ${HOME} e sembra funzionare.


Ubuntu
  1. Come aggiungere correttamente un percorso al percorso?

  2. Come aggiungere in modo pulito a $ percorso?

  3. Aggiungere una nuova sessione personalizzata?

  4. Come copiare file da Wine a desktop?

  5. Uso di / quando si usa cd

2 modi per crittografare i file Dropbox su desktop e server Ubuntu

Come utilizzare i file RAR in Ubuntu Linux [Suggerimento rapido]

Come utilizzare BleachBit per ottimizzare Ubuntu Linux

Utilizzo di file e cartelle sullo schermo del desktop in Ubuntu

Come installare e utilizzare ProtonVPN su desktop Linux

Possibilità di trascinare e rilasciare file sul desktop in altre app?