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діалоговому вікні (Run Application), він дає наступне повідомлення про помилку:

Не вдалося відкрити файл 'location: /// 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вже не працює. Чи є якісь оновлення щодо цього?
iago-lito

2

~/.bashrc~/.profileза замовчуванням включається . До ~/binкаталогу також додано PATHза замовчуванням. Створіть ~/binкаталог та додайте символьні посилання ( 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 -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.