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?

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.


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.,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.