Alt + F2 (Ejecutar aplicación) no funciona para comandos personalizados

12

Para acelerar el desarrollo de Android, he editado mi ~/.bashrcpara agregar algunas rutas a PATH:

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

Esto funciona bien desde la línea de comandos (solo puedo escribir androidy, sin importar dónde esté, el SDK de Android y el Administrador de AVD se iniciarán bien).

Sin embargo, si intento escribir androiden el Alt+F2cuadro de diálogo (Ejecutar aplicación), aparece el siguiente error:

No se pudo abrir la ubicación 'archivo: /// home / felix / android'

Error al indicar el archivo '/ home / felix / android': no ​​existe tal archivo o directorio

¿Porqué es eso? ¿Qué PATHusa el cuadro de diálogo Ejecutar aplicación?

Felix
fuente

Respuestas:

11

Supongo que bashrcGnome no lee, y por qué debería hacerlo, ya que es un archivo de configuración para bash.

Defino mi camino en ~/.profile. Este archivo es definitivamente leído por los entornos Gnome y XFCE y también debería ser leído por otros. (¡Pero se lee solo al iniciar sesión, por lo que debe cerrar sesión y volver a introducir los cambios para que surtan efecto!)

Carsten Thiel
fuente
Moví la PATH=declaración a ~/.profiley funciona tanto en Alt + F2 como en una terminal. Gracias.
Felix
En mi caso, no pude averiguar cómo hacer que la sesión X comience con un shell de inicio de sesión para que lea ~/.profile, así que tuve que cambiar / bin / sh para apuntar a / bin / dash
elias
1
Hola, habla Gnome 3.30.1, y configurar la RUTA ~/.profileya no funciona. ¿Hay alguna actualización sobre esto?
iago-lito
2

~/.bashrcestá incluido ~/.profilepor defecto. El ~/bindirectorio también se agrega PATHpor defecto. Cree el ~/bindirectorio y agregue enlaces simbólicos ( ln -s) a las aplicaciones que desee usar, o modifique su ~/.bashrc.

El contenido predeterminado de los archivos mencionados se puede encontrar en /etc/skel- utilizado al crear una nueva cuenta y sus directorios de inicio.

Raphael Bossek
fuente
1
Sí, si .profileestá siendo ejecutado por un bash! Las verificaciones condicionales para el $BASH_VERSIONser definido, que Gnome no hará. Y, por cierto, eliminar la condición provocará problemas con algunos entornos de escritorio, como LXDE.
Carsten Thiel
0

Tuve el mismo problema con Linux Mint (Cinnamon 2.8.8), y no había forma de que funcionara con las soluciones habituales (usando a .profile, cambiando Xsessionshebang a /bin/sh -l).

El problema es eso /bin/sh, que generalmente es un enlace simbólico para /bin/dashleer ~/.profilesi es un shell de inicio de sesión (es decir, dada la -lopción).

Puede verificar eso con 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 +++

No pude averiguar qué script cambiar (probé un montón de ellos en / etc / X11 y / etc / mdm), pero no tuve suerte.

Así que tiré la toalla y cambié /bin/shpara señalar en /bin/bashlugar de /bin/dashy ahora funciona. :)

elias
fuente