Establecer variable de entorno para el iniciador de aplicaciones de la unidad

8

He creado un .desktoparchivo para iniciar nuestra aplicación. Nuestra aplicación requiere que una determinada variable de entorno esté configurada correctamente. ¿Dónde puedo configurar esta variable de entorno en una base por usuario (los candidatos habituales que conozco, me gustan ~/.bashrcy ~/.profileno funcionan).

¿Tal vez hay una solución alternativa, por lo que puedo configurarlo en la Exec=línea del .desktoparchivo antes de iniciar la aplicación?

Mike L.
fuente

Respuestas:

15

En el archivo de escritorio en sí, puede ejecutar el programa a través de env:

Exec=/usr/bin/env VAR=value /usr/bin/yourprogram

Alternativamente, use un script de envoltura (por ejemplo /usr/bin/yourprogram.env):

#!/bin/sh
VAR=value
export VAR
exec /usr/bin/yourprogram.real "$@"

Sin embargo, ambas son soluciones deficientes, ya que Unity no podrá rastrear correctamente el programa si se inicia a través de un contenedor.

Sería mucho mejor ~/.profiletrabajar: asegúrese de utilizar la sintaxis correcta y todo eso:

export VAR=value

o

VAR=value
export VAR

Recuerde también que ~/.profilesolo se lee cuando inicia sesión , por lo que debe cerrar sesión después de cambiarlo.

usuario1686
fuente
Gracias. Desafortunadamente, su sugerencia de uso env VAR=value /my/appno funciona; la variable de entorno VARno está configurada valuecuando se /my/appinicia (lo he intentado editando el desktoparchivo ~/.gnome/apps). Crear una secuencia de comandos de envoltura no es una opción para mí, porque esto debería funcionar para nuestra aplicación distribuida a los usuarios finales y no sé dónde querría que se ubicara la secuencia de comandos de envoltura (la creación del iniciador no debe requerir derechos de administrador )
Mike L.
(¿Eh? No sabía que ~/.gnome/appstodavía estaba en uso; se ha llamado ~/.local/share/applicationsdurante los últimos años). @ Mike, si es tu propia aplicación, ¿por qué no se puede arreglar para determinar automáticamente la variable de entorno adecuada? (Además, ¿puedo preguntar qué variable está configurando específicamente?)
user1686
Estoy tratando de establecer una variable que defina la ubicación del entorno de tiempo de ejecución Java para nuestra aplicación.
Mike L.
1
quizás use algunas de las ubicaciones estándar standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
technosaurus
He instalado el .desktoparchivo usando xdg-desktop-menu install <my-desktop-file>. Parece que lo copió a dos ubicaciones y siempre estaba editando la incorrecta ...
Mike L.