Назад | Перейти на главную страницу

Экспорт путей и конфигураций в ubuntu

Я пытаюсь добавить экспорт, используя следующий метод:

# SETUP CONFIGS
sudo bash -c "cat >> /etc/bash.bashrc" <<'EOF'
export AWS_CONFIG_FILE=/etc/test/aws.txt
export PATH="$PATH:/usr/local/bin/"
EOF

У меня два вопроса:

  1. По какой-либо причине он просто не работает, конфигурация не читается AWS, как если бы она никогда не была связана. Правильно ли я это сделал?

  2. Во-вторых, при перезагрузке это переживает? Например, мне просто нужно будет сделать это один раз, и когда я перезагружу сервер, он все равно будет там, или вместо этого мне придется добавить эти команды в мой rc.local, чтобы они восстанавливались при каждой перезагрузке сервера.

Спасибо за любую помощь, которую вы можете оказать.

Из вашего вопроса неясно, где именно и когда вы запускаете представленный сценарий.

После запуска скриптлета выполните cat /etc/bash.bashrc чтобы увидеть, есть ли там две линии экспорта.

Сценарий добавляет две строки к /etc/bash.bashrc каждый раз, когда он запускается. Если вы запустите его дважды, у вас будут повторяющиеся строки. Файл /etc/bash.bashrc - это обычный файл конфигурации, который не восстанавливается при каждой загрузке, поэтому любые вносимые вами изменения сохраняются. Таким образом, вы, вероятно, захотите запустить этот сценарий только один раз на каждой платформе, на которой вы его устанавливаете.

В любом случае, /etc/bash.bashrc вероятно, не лучшее место для добавления глобальных дополнений к PATH. Вы кладете их в /etc/profile. Но прежде чем вы это сделаете, сделайте echo $PATH чтобы убедиться, что /usr/local/bin там еще нет. В большинстве дистрибутивов он включен в PATH прямо из коробки.

Изменения, которые вы вносите в /etc/bash.bashrc будет эффективен для новых bash процессы, такие как запущенные окна терминала bash что ты начинаешь после вы вносите изменения. Изменение не влияет на запущенные в данный момент окна.

В PATH переменная среды, которую вы установили /etc/profile из в .bashrc файл влияет только на оболочки bash. Если вы запустите программу из crontab, at или из /etc/rc.d файл, то вам нужно установить PATH специально в этих сценариях или используйте etc/environment файл для установки переменных среды для всех процессов. Видеть этот ссылка, объясняющая различия.

Общесистемные переменные среды могут быть помещены в /etc/environment.

После того, как вы добавили упомянутые вами строки в /etc/bash.bashrc, каждый процесс bash должен их «знать». Вы можете проверить это с помощью:

echo $PATH

и

source /etc/bash.bashrc
echo $PATH

Также посетите Wiki сообщества Ubuntu на Переменные среды.