Ustaw zmienną środowiskową dla programu uruchamiającego aplikacje jedności

8

Utworzyłem .desktopplik, aby uruchomić naszą aplikację. Nasza aplikacja wymaga, aby pewna zmienna środowiskowa była poprawnie skonfigurowana. Gdzie mogę skonfigurować tę zmienną środowiskową dla poszczególnych użytkowników (zwykli kandydaci, których znam, lubią ~/.bashrci ~/.profilenie działają).

Może istnieje obejście, więc mogę skonfigurować go w Exec=wierszu .desktoppliku przed uruchomieniem aplikacji?

Mike L.
źródło

Odpowiedzi:

15

W samym pliku pulpitu możesz uruchomić program poprzez env:

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

Możesz też użyć skryptu opakowania (np. /usr/bin/yourprogram.env):

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

Oba są jednak kiepskimi rozwiązaniami, ponieważ Unity nie będzie w stanie poprawnie śledzić programu, jeśli zostanie uruchomiony przez opakowanie.

O wiele lepiej byłoby zacząć ~/.profiledziałać - upewnij się, że używasz poprawnej składni i tak dalej:

export VAR=value

lub

VAR=value
export VAR

Pamiętaj również, że ~/.profilejest on czytany tylko podczas logowania , więc musisz się wylogować po zmianie.

użytkownik1686
źródło
Dzięki. Niestety twoja sugestia użycia env VAR=value /my/appnie działa; zmienna środowiskowa VARnie jest ustawiona valuepodczas /my/appuruchamiania (próbowałem, edytując desktopplik ~/.gnome/apps). Utworzenie skryptu opakowania nie jest dla mnie opcją, ponieważ powinno to działać w przypadku naszej aplikacji rozpowszechnianej wśród użytkowników końcowych i nie wiem, gdzie użytkownik końcowy chciałby zlokalizować skrypt opakowania (tworzenie programu uruchamiającego nie wymaga uprawnień administratora ).
Mike L.,
(Huh? Nie wiedziałem, że ~/.gnome/appswciąż jest w użyciu; nazywano ~/.local/share/applicationsgo od kilku lat.) @Mike, jeśli to twoja własna aplikacja, dlaczego nie można tego naprawić, aby automatycznie określała odpowiednią zmienną środowiskową? (Czy mogę również zapytać, którą konkretnie zmienną ustawiasz?)
user1686,
Próbuję ustawić zmienną określającą lokalizację środowiska wykonawczego Java dla naszej aplikacji.
Mike L.
1
może korzystać z niektórych standardowych miejscach standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
Technosaurus
Zainstalowałem .desktopplik za pomocą xdg-desktop-menu install <my-desktop-file>. Wygląda na to, że skopiowałem go do dwóch lokalizacji i zawsze edytowałem niewłaściwy ...
Mike L.,