Alt + F2 (Executar Aplicativo) não funciona para comandos personalizados

12

Para acelerar o desenvolvimento do Android, editei o meu ~/.bashrcpara adicionar alguns caminhos para PATH:

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

Isso funciona muito bem na linha de comando (eu posso apenas digitar androide, não importa onde eu esteja, o Android SDK e o AVD Manager serão iniciados muito bem.

No entanto, se eu tentar digitar androidna Alt+F2caixa de diálogo (Executar Aplicativo), ele apresentará o seguinte erro:

Não foi possível abrir o local 'file: /// home / felix / android'

Erro ao declarar o arquivo '/ home / felix / android': esse arquivo ou diretório não existe

Por que é que? O PATHque o diálogo Executar Aplicativo usa?

Felix
fonte

Respostas:

11

Eu assumo que o bashrcGnome não é lido, e por que deveria, já que é um arquivo de configuração para bash.

Eu defino meu caminho ~/.profile. Este arquivo é definitivamente lido pelos ambientes Gnome e XFCE e deve ser utilizado por outros também. (Mas é somente leitura no logon, portanto, é necessário fazer logout e efetuar novamente as alterações para entrar em vigor!)

Carsten Thiel
fonte
Mudei a PATH=declaração para ~/.profilee ela funciona tanto em Alt + F2 quanto em um terminal. Obrigado.
Felix
No meu caso, eu não conseguia descobrir como fazer com que a sessão X para começar com um shell de login para que ele iria ler a ~/.profile, então eu tive que mudar / bin / sh para apontar para / bin / dash
elias
1
Ei, este é o Gnome 3.30.1 falando, e configurar o PATH ~/.profilenão funciona mais. Existe alguma atualização sobre isso?
Iago-lito
2

~/.bashrcestá incluído ~/.profilepor padrão. O ~/bindiretório também é adicionado PATHpor padrão. Crie o ~/bindiretório e adicione links simbólicos ( ln -s) aos aplicativos que você pretende usar ou modifique o seu ~/.bashrc.

O conteúdo padrão dos arquivos mencionados pode ser encontrado em /etc/skel- usado ao criar uma nova conta e seus diretórios pessoais.

Raphael Bossek
fonte
1
Sim, se .profileestiver sendo executado por um bash! As checagens condicionais para $BASH_VERSIONserem definidas, o que o Gnome não fará. A propósito, remover a condição resultará em problemas com alguns ambientes de área de trabalho, como o LXDE.
Carsten Thiel
0

Eu tive o mesmo problema com o Linux Mint (Cinnamon 2.8.8) e não havia como fazê-lo funcionar com as correções usuais (usando a .profile, mudando Xsessionshebang para /bin/sh -l).

O problema é esse /bin/sh, que geralmente é um link simbólico para /bin/dashler ~/.profilese é um shell de login (ou seja, dada a -lopção).

Você pode verificar isso com 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 +++

Não consegui descobrir qual script alterar (tentei várias delas em / etc / X11 e / etc / mdm), mas não tive sorte.

Então, eu joguei a toalha e mudou /bin/sha ponto de /bin/bash, em vez de /bin/dashe está funcionando agora. :)

elias
fonte