Exportando caminhos e configurações no Ubuntu

1

Estou tentando adicionar algumas exportações usando o seguinte método:

# 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

Eu tenho duas perguntas:

  1. Por qualquer razão, simplesmente não está funcionando, a configuração não está sendo lido pela AWS como se nunca estivesse vinculado. Eu fiz isso corretamente?

  2. Em segundo lugar, isso sobrevive a uma reinicialização? Como em, eu vou ter que fazer isso apenas uma vez, e quando eu reiniciar o servidor ele ainda estará lá, ou então eu vou ter que adicionar esses comandos ao meu rc.local para que eles sejam restabelecidos a cada reinicialização do servidor. / p>

Obrigado por qualquer ajuda que você possa dar.

    
por James Willson 01.04.2013 / 20:22

2 respostas

3

Não está claro a partir de sua pergunta exatamente onde e quando você está executando o scriptlet que você apresentou.

Depois de executar o scriptlet, faça cat /etc/bash.bashrc para ver se as duas linhas de exportação estão lá.

O scriptlet adiciona duas linhas a /etc/bash.bashrc cada vez que é executado. Se você executá-lo duas vezes, você terá linhas duplicadas. O arquivo /etc/bash.bashrc é um arquivo de configuração regular, não é regenerado a cada inicialização, portanto, todas as alterações feitas são persistentes. Então, você provavelmente só quer rodar este script uma vez em cada plataforma na qual você o instala.

Em qualquer caso, /etc/bash.bashrc provavelmente não é um bom local para colocar adições globais em PATH . Você coloca esses em /etc/profile . Mas antes de fazer isso, faça echo $PATH para verificar se /usr/local/bin ainda não está lá. Na maioria das distribuições, é incluído no PATH out-of-the-box.

As alterações feitas em /etc/bash.bashrc serão efetivas para novos processos de bash , como as janelas de terminal executando bash que você inicia após fazer a alteração. A alteração não afeta as janelas atualmente em execução.

A variável de ambiente PATH que você definiu em /etc/profile de em um arquivo .bashrc afeta apenas os shells bash. Se você iniciar um programa a partir de crontab , at ou de um arquivo /etc/rc.d , precisará definir PATH especificamente nesses scripts ou usar o arquivo etc/environment para definir variáveis de ambiente para todos os processos. Veja este link que explica as diferenças.

    
por 01.04.2013 / 21:39
1

As variáveis de ambiente de todo o sistema podem ser colocadas em /etc/environment .

Depois de adicionar as linhas mencionadas a /etc/bash.bashrc , cada processo bash deve "conhecê-las". Você pode verificar isso com:

echo $PATH

e

source /etc/bash.bashrc
echo $PATH

Verifique também o Wiki da comunidade Ubuntu em Variáveis de ambiente .

    
por 01.04.2013 / 21:35