Alt + F2 (Запустить приложение) не работает для пользовательских команд

10

Чтобы ускорить разработку Android, я редактировал свой ~/.bashrc , чтобы добавить некоторые пути к PATH :

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

Это отлично работает из командной строки (я могу просто набрать android и, независимо от того, где я, Android SDK и AVD Manager запустится просто отлично.

Однако, если я попытаюсь набрать android в диалоговом окне Alt + F2 (Запустить приложение), это приведет к следующей ошибке:

  

Не удалось открыть файл местоположения: /// home / felix / android '

     

Ошибка с указанием файла '/ home / felix / android': нет такого файла или каталога

Почему? Что PATH использует диалог запуска приложения?

    
задан Felix 04.01.2011 в 09:20
источник

3 ответа

9

Я предполагаю, что bashrc не читается Gnome, и почему это должно быть, поскольку это файл конфигурации для bash .

Я определяю свой путь в ~/.profile . Этот файл определенно читается средами Gnome и XFCE, а также другими. (Но он читается только при входе в систему, поэтому вам нужно выйти из системы и вернуться к тем изменениям, которые вступят в силу!)

    
ответ дан Carsten Thiel 04.01.2011 в 09:44
источник
1

~/.bashrc по умолчанию ~/.profile . Каталог ~/bin добавляется к PATH по умолчанию. Создайте каталог ~/bin и добавьте символические ссылки ( ln -s ) в приложения, которые вы намерены использовать, или измените свой ~/.bashrc .

Содержимое по умолчанию указанных файлов можно найти в /etc/skel - используется при создании новой учетной записи и их домашних каталогов.

    
ответ дан Raphael Bossek 04.01.2011 в 10:16
0

У меня была такая же проблема с Linux Mint (Cinnamon 2.8.8), и я не мог заставить ее работать с обычными исправлениями (используя .profile , меняя Xsession shebang на /bin/sh -l ).

Проблема заключается в том, что /bin/sh , которая обычно является символической ссылкой на /bin/dash , читает ~/.profile , если это оболочка входа (т. е. с учетом опции -l ).

Вы можете проверить это с помощью 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 +++

Я не мог понять, какой сценарий изменился (попробовал кучу из них в / etc / X11 и / etc / mdm), но не повезло.

Итак, я бросил полотенце и изменил /bin/sh , чтобы указать /bin/bash вместо /bin/dash , и теперь он работает. :)     

ответ дан elias 12.07.2016 в 14:23