Можно ли указать переменные среды только для данного приложения? Таким образом, переменные среды устанавливаются автоматически при запуске приложения («VAR = VALUE myapp» - это не то, что мне нужно).
Фактическая проблема в том, что я хочу, чтобы вино всегда начиналось с определенной настройки LC_ALL, но не хочу изменять LC_ALL глобально. Есть много мест, где можно запустить Wine (терминал, ассоциации файлов gnome, ярлыки меню), и ручная установка LC_ALL во всех этих случаях кажется слишком утомительной.
Другая возможность - изменить ваш PATH, например, /usr/local/bin
приходит первым, а затем создайте /usr/local/bin/wine
вот так:
#!/bin/sh
export FOO=bar
/usr/local/bin/wine "$@"
Я не знаю, как работают эти "ассоциации файлов gnome" и "ярлыки меню". Если они жестко закодируют полный путь, а не полагаются на $PATH
это сол не будет работать.
Вы можете сделать что-то вроде этого:
Переименуйте основной двоичный файл Wine из wine
к wine.real
. Создайте сценарий вместо двоичного файла Wine, который выглядит примерно так.
#!/bin/bash
FOO=bar
export foo
wine.real $* &
Вы также можете создать псевдоним, чтобы вам не нужно было менять что-то, чем управляет ваш менеджер программного обеспечения. Например, в вашем ~ / .bash_profile
alias wine='FOO=bar; \wine'
В \
предотвращает подавление расширения псевдонима для предотвращения бесконечной рекурсии.
Изменить: это решение не будет работать во всех упомянутых вами ситуациях.