Estoy creando .desktop
archivos para usar en Unity Launcher.
Tengo mi propia ubicación en mi directorio de inicio donde pongo mis ejecutables ( ~/usr/bin/
) que se agregan correctamente a mi PATH
variable de entorno en mi .pam_environment
archivo como se especifica en la documentación relevante de Ubuntu .
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 da como resultado que mi PATH
variable sea la siguiente:
ben@ben-HPdv6:~$ 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 agrega dos veces, pero cualquier cosa en el .pam_environment
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 (ocurre con todos los casos). Tengo un script (llamadoeclipse
) en el ~/usr/bin/
que se ejecuta Eclipse IDE.
Puedo abrir cualquier terminal y simplemente escribir eclipse
y funciona bien como cabría esperar.
Pero cuando se usa el siguiente .desktop
archivo:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=Eclipse - Juno (4.2)
Icon=/home/ben/.icons/eclipse.svg
Exec=eclipse
Me sale el error:
Pero cuando cambio la Exec=
línea a:
Exec=/home/ben/usr/bin/eclipse
Funciona perfectamente.
La documentación oficial de Unity Launchers y 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 se encuentre 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á pasando?
Respuestas:
La tilde no se expande
.pam_environment
como lo haría en un script de perfil, y los archivos de escritorio no hacen expansión de shell en suExec
líneas como lo haría el shell, por lo que está buscando un archivo que literalmente se llama~/usr/bin/eclipse
, lo que por supuesto no t existe.Reemplace la tilde en la asignación de RUTA con $ {HOME} y parece funcionar.
fuente
$PATH
sucede dos veces?Lo que se dice en la documentación de Ubuntu tiene sentido, sin embargo, su sección "ya no se recomienda" carece de algunos detalles. Por esa razón, mi respuesta implicará usar uno de estos métodos. Además: ya se usa para este mismo propósito.
Visite rápidamente su archivo ./.profile.
El mío contiene esto:
Como puede ver en la última sección de este archivo (líneas debajo de # set PATH para que incluya el bin privado del usuario si existe), esto ya se está haciendo. Entonces, si desea agregar algo a la variable $ PATH, simplemente haría lo mismo. La documentación mencionó que esto se ejecutará cada vez que se inicie el sistema.
En su caso, todo lo que necesita hacer es agregar esto:
En este punto, estoy empezando a pensar que la única razón por la que este método ya no se recomienda es porque implica secuencias de comandos en el inicio, lo cual es muy sensible a pequeños errores. Sin embargo, cuando alguien está trabajando con algo como esto, se puede deshacer un pequeño error simplemente cambiando el archivo a la forma en que estaba.
Si no está seguro de cómo hacer esto:
1) Primero, presione CTRL + ALT + F3
2) Inicie sesión siguiendo el mensaje en pantalla
3) Escriba esto en el símbolo del sistema:
4) elimine estas líneas: (las acabamos de agregar)
5) presione CTRL + O (como en Out)
6) presione CTRL + X (como en eXit)
7) escriba
exit
y presione ENTRAR (a veces VOLVER)8) ahora presiona CTRL + ALT + F7
9) Debería obtener su pantalla de inicio de sesión o escritorio, dependiendo de cuándo ocurrió el problema. De lo contrario, presione CTRL + ALT + SUPR (a veces CTRL + ALT + SUPRIMIR) y su sistema debería reiniciarse de manera segura.
¡Espero que esto ayude!
fuente