Je crée des .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 sont correctement ajoutés à ma PATH
variable d'environnement dans mon .pam_environment
fichier comme spécifié dans la documentation Ubuntu pertinente .
Voici le contenu de mon .pam_environment
dossier:
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 PATH
variable 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_environment
fichier 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 eclipse
et cela fonctionne bien comme vous vous en doutez.
Mais lors de l'utilisation du .desktop
fichier 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?
Réponses:
Le tilde n'est pas développé
.pam_environment
comme il le ferait dans un script de profil, et les fichiers de bureau ne font pas d'expansion du shell sur leursExec
lignes comme le ferait le shell, donc il recherche un fichier qui porte un nom littéral~/usr/bin/eclipse
, ce qui bien sûr ne le fait pas. n'existe pas.Remplacez le tilde dans l'affectation PATH par $ {HOME} et cela semble fonctionner.
la source
$PATH
produit deux fois?Ce qui est dit sur la documentation Ubuntu a du sens, mais sa section "plus recommandé" manque de détails. Pour cette raison, ma réponse impliquera d'utiliser l'une de ces méthodes. Aussi: il est déjà utilisé dans ce même but.
Visitez rapidement votre fichier ./.profile.
Le mien contient ceci:
Comme vous pouvez le voir dans la dernière section de ce fichier (les lignes ci-dessous # définissent PATH pour qu'il inclue le bac privé de l'utilisateur s'il existe), cela est déjà en cours. Donc, si vous vouliez ajouter quelque chose à la variable $ PATH, vous feriez simplement la même chose. La documentation mentionne que cela sera exécuté à chaque démarrage du système.
Dans votre cas, il vous suffit d'ajouter ceci:
À ce stade, je commence à penser que la seule raison pour laquelle cette méthode n'est plus recommandée est qu'elle implique des scripts au démarrage, ce qui est très sensible aux légères erreurs. Cependant, lorsque quelqu'un travaille avec quelque chose comme ça, une petite erreur peut être annulée simplement en remettant le fichier dans sa forme d'origine.
Si vous ne savez pas comment procéder:
1) Tout d'abord, appuyez sur CTRL + ALT + F3
2) Connectez-vous en suivant l'invite à l'écran
3) Tapez ceci dans l'invite de commande:
4) supprimez ces lignes: (nous venons de les ajouter)
5) appuyez sur CTRL + O (comme dans Out)
6) appuyez sur CTRL + X (comme dans eXit)
7) tapez
exit
et appuyez sur ENTREE (parfois RETOUR)8) appuyez maintenant sur CTRL + ALT + F7
9) Vous devriez obtenir votre écran de connexion ou votre bureau, selon le moment où le problème s'est produit. Sinon, appuyez sur CTRL + ALT + SUPPR (parfois CTRL + ALT + SUPPR) et votre système devrait redémarrer en toute sécurité.
J'espère que cela t'aides!
la source