Встановити змінну середовища для запуску програм єдності


8

Я створив .desktopфайл для запуску нашої програми. Наш додаток вимагає, щоб певна змінна середовище була правильно налаштована. Де я можу налаштувати цю змінну середовища на базі користувача (звичайні кандидати, яких я знаю, люблять ~/.bashrcі ~/.profileне працюють).

Можливо, є обхід, тож я можу налаштувати його у Exec=рядку .desktopфайлу перед запуском програми?

Відповіді:


15

У самому файлі робочого столу програму можна виконати за допомогою env:

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

Крім того, використовуйте обгортковий сценарій (наприклад /usr/bin/yourprogram.env):

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

Однак обидва є поганими рішеннями, оскільки Unity не зможе правильно відслідковувати програму, якщо її запустити через обгортку.

Було б набагато краще розпочати ~/.profileроботу - переконайтеся, що ви використовуєте правильний синтаксис і все це:

export VAR=value

або

VAR=value
export VAR

Також пам’ятайте, що ~/.profileвін читається лише під час входу , тому ви повинні вийти з нього після зміни.


Дякую. На жаль, ваша пропозиція використовувати env VAR=value /my/appне працює; змінна середовище VARне встановлюється valueпри /my/appзапуску (я намагався редагувати desktopфайл у ~/.gnome/apps). Створення скрипта для обгортки для мене не є варіантом, оскільки це повинно працювати для нашого додатку, розповсюдженого серед кінцевих користувачів, і я не знаю, де кінцевий користувач хотів би розмістити скрипт обгортки (для створення запуску не потрібно вимагати адміністраторських прав ).
Майк Л.

(Так? Я не знав, що ~/.gnome/appsвсе ще використовується; його називали ~/.local/share/applicationsостанні кілька років.) @Mike, якщо це ваша власна програма, чому не можна встановити автоматичне визначення правильної змінної середовища? (Також я можу запитати, яку саме зміну ви встановлюєте?)
user1686

Я намагаюся встановити змінну, що визначає розташування середовища виконання Java для нашого програми.
Майк Л.

1
можливо , використовувати деякі зі стандартних локацій standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
technosaurus

Я встановив .desktopфайл за допомогою xdg-desktop-menu install <my-desktop-file>. Схоже, він скопіював його у два місця, і я завжди редагував неправильне ...
Майк Л.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.