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


12

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

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

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

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

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

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

Это почему? Что PATHиспользует диалог «Запустить приложение»?

Ответы:


11

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

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


Я перенес PATH=заявление в, ~/.profileи оно работает как в Alt + F2, так и в терминале. Благодарю.
Феликс

В моем случае я не мог понять, как заставить сеанс X начинаться с оболочки входа в систему, чтобы он читал ~/.profile, поэтому мне пришлось изменить / bin / sh, чтобы указать на / bin / dash
elias

1
Эй, это говорит Gnome 3.30.1, и установка PATH в ~/.profileбольше не работает. Есть ли какие-либо обновления по этому поводу?
Яго-Лито

2

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

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


1
Да, если .profileисполняется bash! Условные проверки для $BASH_VERSIONопределения того, что Gnome не будет делать. И, кстати, удаление условия приведет к проблемам с некоторыми средами рабочего стола, такими как LXDE.
Карстен Тиль

0

У меня была та же проблема с Linux Mint (Cinnamon 2.8.8), и я никак не мог заставить его работать с обычными исправлениями (с помощью .profileизменения Xsessionshebang на /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и теперь он работает. :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.