Setel variabel lingkungan untuk peluncur aplikasi kesatuan

8

Saya telah membuat .desktopfile untuk meluncurkan aplikasi kami. Aplikasi kita mensyaratkan, bahwa variabel lingkungan tertentu dikonfigurasi dengan benar. Di mana saya dapat mengkonfigurasi variabel lingkungan ini pada basis per pengguna (kandidat yang biasa saya tahu, suka ~/.bashrcdan ~/.profiletidak bekerja).

Mungkin ada solusi, jadi saya bisa mengkonfigurasinya di Exec=baris .desktopfile sebelum meluncurkan aplikasi?

Mike L.
sumber

Jawaban:

15

Di file desktop itu sendiri, Anda dapat menjalankan program melalui env:

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

Atau, gunakan skrip pembungkus (mis. /usr/bin/yourprogram.env):

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

Namun, keduanya adalah solusi yang buruk, karena Unity tidak akan dapat melacak program dengan benar jika dimulai melalui pembungkus.

Akan jauh lebih baik untuk ~/.profilebekerja - pastikan Anda menggunakan sintaks yang benar dan semua itu:

export VAR=value

atau

VAR=value
export VAR

Ingat juga bahwa ~/.profilehanya dibaca ketika Anda masuk , jadi Anda harus keluar setelah mengubahnya.

grawity
sumber
Terima kasih. Sayangnya, saran Anda untuk menggunakan env VAR=value /my/apptidak berhasil; variabel lingkungan VARtidak disetel ke valuesaat /my/appdiluncurkan (saya sudah mencoba mengedit desktopfile di ~/.gnome/apps). Membuat skrip wrapper bukanlah pilihan bagi saya, karena ini harus berfungsi untuk aplikasi kami didistribusikan kepada pengguna akhir dan saya tidak tahu di mana pengguna akhir ingin skrip wrapper berada (membuat launcher tidak harus memerlukan hak admin ).
Mike L.
(Hah? Saya tidak tahu ~/.gnome/appsapakah masih digunakan; sudah dipanggil ~/.local/share/applicationsselama beberapa tahun terakhir.) @Mike, jika itu aplikasi Anda sendiri, mengapa tidak bisa diperbaiki untuk secara otomatis menentukan variabel lingkungan yang tepat? (Juga, bisakah saya bertanya variabel mana yang Anda tetapkan secara spesifik?)
grawity
Saya mencoba untuk menetapkan variabel yang menentukan lokasi lingkungan runtime Java untuk aplikasi kita.
Mike L.
1
mungkin menggunakan beberapa lokasi standar standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
technosaurus
Saya telah menginstal .desktopfile menggunakan xdg-desktop-menu install <my-desktop-file>. Sepertinya itu disalin ke dua lokasi dan saya selalu mengedit yang salah ...
Mike L.