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

Чтобы ускорить разработку под 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 используется в диалоговом окне «Запустить приложение»?

11
задан 18 January 2011 в 12:59

3 ответа

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

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

0
ответ дан 18 January 2011 в 12:59

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

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

0
ответ дан 18 January 2011 в 12:59

У меня была такая же проблема с 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, и теперь он работает. :)

0
ответ дан 18 January 2011 в 12:59

Другие вопросы по тегам:

Похожие вопросы: