Alt + F2 (Anwendung ausführen) funktioniert nicht für benutzerdefinierte Befehle

11

Um die Android-Entwicklung zu beschleunigen, habe ich meine bearbeitet ~/.bashrcund einige Pfade hinzugefügt zu PATH:

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

Dies funktioniert einwandfrei über die Befehlszeile (ich kann einfach tippen androidund egal wo ich bin, das Android SDK und der AVD Manager werden einwandfrei gestartet.

Wenn ich jedoch versuche, androidden Alt+F2Dialog (Anwendung ausführen) einzugeben, wird der folgende Fehler angezeigt:

Speicherort 'file: /// home / felix / android' konnte nicht geöffnet werden.

Fehler beim Angeben der Datei '/ home / felix / android': Keine solche Datei oder kein solches Verzeichnis

Warum das? Was PATHverwendet das Dialogfeld "Anwendung ausführen"?

Felix
quelle

Antworten:

10

Ich gehe davon aus, dass das bashrcnicht von Gnome gelesen wird und warum sollte es, da es eine Konfigurationsdatei für ist bash.

Ich definiere meinen Weg in ~/.profile. Diese Datei wird definitiv von den Gnome- und XFCE-Umgebungen gelesen und sollte auch von anderen gelesen werden. (Es ist jedoch nur beim Anmelden lesbar, daher müssen Sie sich bei allen Änderungen abmelden und wieder anmelden, um wirksam zu werden!)

Carsten Thiel
quelle
Ich habe die PATH=Anweisung nach verschoben ~/.profileund sie funktioniert sowohl in Alt + F2 als auch in einem Terminal. Vielen Dank.
Felix
In meinem Fall konnte ich nicht herausfinden, wie die X-Sitzung mit einer Anmeldeshell beginnen sollte, damit sie die lesen würde. ~/.profile
Daher
1
Hey, hier spricht Gnome 3.30.1, und das Einstellen des Pfads ~/.profilefunktioniert nicht mehr. Gibt es ein Update dazu?
Iago-Lito
1

~/.bashrcist ~/.profilestandardmäßig enthalten. Das ~/binVerzeichnis wird hinzugefügtPATH standardmäßig ebenfalls . Erstellen Sie das ~/binVerzeichnis und fügen Sie sym-links ( ln -s) zu Anwendungen hinzu, die Sie verwenden möchten, oder ändern Sie Ihre ~/.bashrc.

Der Standardinhalt der genannten Dateien befindet sich in /etc/skel- wird beim Erstellen eines neuen Kontos und seiner Home-Verzeichnisse verwendet.

Raphael Bossek
quelle
1
Ja, wenn .profilevon a bash! Die bedingten Prüfungen für die$BASH_VERSION Definierte, was Gnome nicht tut. Übrigens führt das Entfernen der Bedingung zu Problemen mit einigen Desktop-Umgebungen wie LXDE.
Carsten Thiel
0

Ich hatte das gleiche Problem mit Linux Mint (Cinnamon 2.8.8), und es gab keine Möglichkeit, es mit den üblichen Korrekturen zum Laufen zu bringen (mit a .profile, XsessionShebang ändern in /bin/sh -l).

Das Problem ist das /bin/sh, was normalerweise ein Symlink zum /bin/dashLesen ist, ~/.profilewenn es sich um eine Anmeldeshell handelt (dh mit der -lOption).

Sie können dies mit strace überprüfen:

$ 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 +++

Ich konnte nicht herausfinden, welches Skript ich ändern sollte (habe einige unter / etc / X11 und / etc / mdm ausprobiert), aber kein Glück.

Also warf ich das Handtuch und zog mich um /bin/sh zu zeigen auf /bin/bashanstatt /bin/dashund es funktioniert jetzt. :) :)

elias
quelle