Je crée des .desktopfichiers à utiliser dans Unity Launcher.
J'ai mon propre emplacement dans mon répertoire personnel où je mets mes exécutables ( ~/usr/bin/) qui sont correctement ajoutés à ma PATHvariable d'environnement dans mon .pam_environmentfichier comme spécifié dans la documentation Ubuntu pertinente .
Voici le contenu de mon .pam_environmentdossier:
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 fait que ma PATHvariable est la suivante:
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/
Je sais qu'il est ajouté deux fois, mais tout ce qui se trouve dans le .pam_environmentfichier semble être ajouté deux fois, quelle que soit 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 se produit dans tous les cas). J'ai un script (appelé eclipse) dans ~/usr/bin/lequel s'exécute Eclipse IDE.
Je peux ouvrir n'importe quel terminal et simplement taper eclipseet cela fonctionne bien comme vous vous en doutez.
Mais lors de l'utilisation du .desktopfichier suivant :
#!/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
Je reçois l'erreur:

Mais quand je change la Exec=ligne en:
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 complet du fichier exécutable ne doit être utilisé qu'au cas où 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 que leur chemin complet soit spécifié dans le champ Exec, mais seulement leur nom de fichier.
Des suggestions sur ce qui se passe?