Alt + F2 (Exécuter l'application) ne fonctionne pas pour les commandes personnalisées

12

Afin d'accélérer le développement d'Android, j'ai modifié mon ~/.bashrcpour ajouter des chemins vers PATH:

export PATH=${PATH}:/opt/android-sdk/tools:/opt/android-sdk/platform-tools

Cela fonctionne très bien à partir de la ligne de commande (je peux simplement taper androidet, peu importe où je suis, le SDK Android et AVD Manager démarreront très bien.

Cependant, si j'essaie de taper androiddans la Alt+F2boîte de dialogue (Exécuter l'application), cela donne l'erreur suivante:

Impossible d'ouvrir l'emplacement 'fichier: /// home / felix / android'

Erreur lors de l'indication du fichier '/ home / felix / android': aucun fichier ou répertoire de ce type

Pourquoi donc? À quoi PATHsert la boîte de dialogue Exécuter l'application?

Felix
la source

Réponses:

11

Je suppose que le bashrcGnome n'est pas lu, et pourquoi le devrait-il, car il s'agit d'un fichier de configuration pour bash.

Je définis mon chemin ~/.profile. Ce fichier est définitivement lu par les environnements Gnome et XFCE et devrait également l'être par d'autres. (Mais il est en lecture seule lors de la connexion, vous devez donc vous déconnecter et vous reconnecter pour que les modifications prennent effet!)

Carsten Thiel
la source
J'ai déplacé la PATH=déclaration vers ~/.profileet cela fonctionne à la fois dans Alt + F2 et dans un terminal. Merci.
Felix
Dans mon cas, je ne savais pas comment faire pour que la session X démarre avec un shell de connexion afin qu'il lise le ~/.profile, j'ai donc dû changer / bin / sh pour pointer vers / bin / dash
elias
1
Hé, c'est Gnome 3.30.1 qui parle, et définir le PATH dans ~/.profilene fonctionne plus. Y a-t-il une mise à jour à ce sujet?
iago-lito
2

~/.bashrcest inclus ~/.profilepar défaut. Le ~/binrépertoire est également ajouté PATHpar défaut. Créez le ~/binrépertoire et ajoutez des liens symboliques ( ln -s) aux applications que vous avez l'intention d'utiliser ou modifiez votre ~/.bashrc.

Le contenu par défaut des fichiers mentionnés peut être trouvé dans /etc/skel- utilisé lors de la création d'un nouveau compte et de leurs répertoires personnels.

Raphael Bossek
la source
1
Oui, si .profileest exécuté par un bash! Les vérifications conditionnelles de l' $BASH_VERSIONêtre étant définies, ce que Gnome ne fera pas. Et en passant, la suppression de la condition entraînera des problèmes avec certains environnements de bureau, tels que LXDE.
Carsten Thiel
0

J'ai eu le même problème avec Linux Mint (Cinnamon 2.8.8), et il n'y avait aucun moyen de le faire fonctionner avec les correctifs habituels (en utilisant un .profile, en changeant Xsessionshebang en /bin/sh -l).

Le problème est que /bin/sh, qui est généralement un lien symbolique pour /bin/dashlire ~/.profiles'il s'agit d'un shell de connexion (c'est-à-dire, étant donné l' -loption).

Vous pouvez vérifier cela avec strace:

$ strace -e open dash
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/dev/tty", O_RDWR)                = 3
$ ^D
+++ exited with 0 +++
$ strace -e open dash -l
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/dev/tty", O_RDWR)                = 3
open("/etc/profile", O_RDONLY)          = 3
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=12260, si_status=0, si_utime=0, si_stime=0} ---
open("/etc/profile.d/Z97-byobu.sh", O_RDONLY) = 3
open("/etc/profile.d/bash_completion.sh", O_RDONLY) = 3
open("/etc/profile.d/vte.sh", O_RDONLY) = 3
open("/home/elias/.profile", O_RDONLY)  = 3
$ ^D
+++ exited with 0 +++

Je n'ai pas pu déterminer quel script changer (j'ai essayé un tas d'entre eux sous / etc / X11 et / etc / mdm), mais pas de chance.

J'ai donc jeté la serviette et changé /bin/shpour pointer vers /bin/bashau lieu de /bin/dashet ça fonctionne maintenant. :)

elias
la source