GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Los archivos de escritorio no parecen usar $path correctamente?

Estoy creando .desktop archivos para usar en Unity Launcher.

Tengo mi propia ubicación en mi directorio de inicio donde coloco mis ejecutables (~/usr/bin/ ) que se agregó correctamente a mi PATH variable de entorno en mi .pam_environment archivo como se especifica en la documentación de Ubuntu correspondiente.

Este es el contenido de mi .pam_environment archivo:

LANGUAGE=en_AU:en_GB:en
LANG=en_AU.UTF-8
LC_NUMERIC=en_AU.UTF-8
LC_TIME=en_AU.UTF-8
LC_MONETARY=en_AU.UTF-8
LC_PAPER=en_AU.UTF-8
LC_NAME=en_AU.UTF-8
LC_ADDRESS=en_AU.UTF-8
LC_TELEPHONE=en_AU.UTF-8
LC_MEASUREMENT=en_AU.UTF-8
LC_IDENTIFICATION=en_AU.UTF-8

PATH DEFAULT=${PATH}:~/usr/bin/

Lo que resulta en mi PATH siendo la variable la siguiente:

[email protected]:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:~/usr/bin/:~/usr/bin/

Sé que se adjunta dos veces, pero cualquier cosa en .pam_environment El archivo parece agregarse dos veces sin importar qué cuando se usa la sintaxis correcta recomendada en la documentación de Ubuntu a la que he hecho referencia.

Este es un ejemplo del problema (sucede en todos los casos). Tengo un script (llamado eclipse ) en ~/usr/bin/ que ejecuta Eclipse IDE.

Puedo abrir cualquier terminal y simplemente escribir eclipse y funciona bien como cabría esperar.

Pero al usar el siguiente .desktop archivo:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Eclipse - Juno (4.2)
Icon=//eadn-wc01-5196795.nxedge.io/home/ben/.icons/eclipse.svg
Exec=eclipse

Recibo el error:

Pero cuando cambio el Exec= línea a:

Exec=/home/ben/usr/bin/eclipse

funciona perfectamente.

La documentación oficial de Unity Launchers and Desktop files sugiere que esto debería funcionar:

Exec es la ruta al archivo ejecutable. La ruta completa al archivo ejecutable debe usarse solo en caso de que no esté en ninguna de las rutas especificadas en la variable $PATH. Por ejemplo, cualquier archivo que esté dentro de la ruta /usr/bin no necesita tener su ruta completa especificada en el campo Exec, sino solo su nombre de archivo.

¿Alguna sugerencia sobre lo que está sucediendo?

Respuesta aceptada:

La tilde no se expande en .pam_environment de la forma en que lo haría en un script de perfil, y los archivos de escritorio no hacen expansión de shell en su Exec líneas de la forma en que lo haría el shell, por lo que está buscando un archivo que se llame literalmente ~/usr/bin/eclipse , que por supuesto no existe.

Reemplace la tilde en la asignación PATH con ${HOME} y parece funcionar.


Ubuntu
  1. ¿Cómo agregar correctamente una ruta a la ruta?

  2. ¿Cómo agregar limpiamente a $path?

  3. ¿Agregar una nueva sesión personalizada?

  4. ¿Desaparecieron carpetas y archivos del escritorio?

  5. ¿Usar un dispositivo a través de SSH?

2 formas de cifrar archivos de Dropbox en Ubuntu Desktop &Server

Cómo usar archivos RAR en Ubuntu Linux [Consejo rápido]

Cómo usar BleachBit para optimizar Ubuntu Linux

Uso de archivos y carpetas en la pantalla del escritorio en Ubuntu

Cómo instalar y usar ProtonVPN en Linux de escritorio

¿Capacidad de arrastrar y soltar archivos en el escritorio a otras aplicaciones?