Экспорт путей и конфигов в 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, чтобы они восстанавливались при каждой перезагрузке сервера.

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

2 ответа

Решение

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

После запуска скриптлета 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

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

Другие вопросы по тегам