Мені потрібно встановити змінні середовища ОС на моєму комп'ютері Centos / 7.
Я спробував його використовувати на моєму variables.rb
файл:
host = "locahost"
port = 9201
ENV["LV_ES_HOST"] = host
ENV["LV_ES_PORT"] = "#{port}"
Проте, на оболонці:
$ echo $LV_ES_HOST
$
- Як я можу встановити змінну середовища Os?
- Чи можна встановити змінну середовища ОС лише для користувача?
Мені потрібна змінна середовища, доступна для ОС, щоб мої додатки для джи були в змозі прочитати його значення.
Я працюю на декількох контейнерах на моєму комп'ютері, і програми працюють за необхідністю отримати змінну середовища LC_ES_HOST.
Відповіді:
1 для відповіді № 1Інше питання насправді не пояснює основну проблему. Змінні середовища Unix успадковані від батьківського процесу до дочірнього процесу під час fork()
. Таким чином, коли ви встановлюєте речі через ENV
у вашому коді Шеф-кухар, він впливає на підпроцеси, які підпадають під Шеф як речі, що виконуються через execute
ресурс. Коли ви входите через SSH, ваша оболонка не є підпроцесором chef-client
так що ці змінні не є видимими. На жаль, Unix не має рішення загального призначення для глобальних змінних середовища, тому вам потрібно вибрати один з багатьох компромісів, які перераховані в іншому питанні.