GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Les fichiers du bureau ne semblent pas utiliser $path correctement ?

Je crée .desktop fichiers à utiliser dans Unity Launcher.

J'ai mon propre emplacement dans mon répertoire personnel où je mets mes exécutables (~/usr/bin/ ) qui est correctement ajouté à mon PATH variable d'environnement dans mon .pam_environment fichier comme spécifié dans la documentation Ubuntu appropriée.

Ceci est le contenu de mon .pam_environment fichier :

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/

Ce qui se traduit par mon PATH variable étant la suivante :

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

Je sais qu'il est ajouté deux fois, mais rien dans le .pam_environment Le fichier semble être ajouté deux fois, quoi qu'il arrive, lors de l'utilisation de la syntaxe correcte recommandée dans la documentation Ubuntu que j'ai référencée.

Ceci est un exemple du problème (cela arrive avec tous les cas). J'ai un script (appelé eclipse ) dans ~/usr/bin/ qui exécute Eclipse IDE.

Je peux ouvrir n'importe quel terminal et taper simplement eclipse et il fonctionne bien comme vous vous en doutez.

Mais lorsque vous utilisez le .desktop suivant fichier :

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

J'obtiens l'erreur :

Mais quand je change le Exec= ligne vers :

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

cela fonctionne parfaitement.

La documentation officielle des lanceurs Unity et des fichiers de bureau suggère que cela devrait fonctionner :

Exec est le chemin d'accès au fichier exécutable. Le chemin d'accès complet au fichier exécutable doit être utilisé uniquement s'il ne se trouve dans aucun des chemins spécifiés dans la variable $PATH. Par exemple, tous les fichiers qui se trouvent dans le chemin /usr/bin n'ont pas besoin d'avoir leur chemin complet spécifié dans le champ Exec, mais seulement leur nom de fichier.

Des suggestions sur ce qui se passe ?

Réponse acceptée :

Le tilde n'est pas développé dans .pam_environment comme il le ferait dans un script de profil, et les fichiers de bureau ne font pas d'expansion du shell sur leur Exec lignes comme le ferait le shell, il recherche donc un fichier nommé littéralement ~/usr/bin/eclipse , qui bien sûr n'existe pas.

Remplacez le tilde dans l'affectation PATH par ${HOME} et cela semble fonctionner.


Ubuntu
  1. Comment ajouter correctement un chemin à un chemin ?

  2. Comment ajouter proprement à $path ?

  3. Ajouter une nouvelle session personnalisée ?

  4. Comment utiliser Ubuntu Server Disk Top

  5. Utiliser un appareil via SSH ?

2 façons de chiffrer les fichiers Dropbox sur Ubuntu Desktop &Server

Comment utiliser les fichiers RAR dans Ubuntu Linux [Quick Tip]

Comment utiliser BleachBit pour optimiser Ubuntu Linux

Utilisation de fichiers et de dossiers sur l'écran du bureau dans Ubuntu

Comment installer et utiliser ProtonVPN sur Linux de bureau

Possibilité de faire glisser et déposer des fichiers sur le bureau vers d'autres applications ?