Por que a “exportação” não está permanentemente ativando minhas variáveis de ambiente?

1

Executando o Fedora 20. Tentando definir permanentemente a variável LANG e LC_TIME com "export". Quando o executo, funciona bem e vejo que foi alterado. Quando eu reinicio, ele é alterado de volta. Eu estou fazendo tudo isso através do shell bash. Eu olhei em .bash_profile e .bashrc na minha pasta pessoal e não vejo nada de onde está recebendo o valor errado. Eu também chequei em / etc - o perfil de arquivos e bashrc, e em /etc/profile.d/. Mas eu não consigo descobrir de onde está tirando esse valor.

1) Onde o Fedora está obtendo a variável de env LANG e LC_TIME e como ela sabe qual escolher?

2) Como posso alterá-lo permanentemente para um único usuário?

3) Como posso alterá-lo globalmente (para todos os usuários) e mantê-lo?

4) Por que a "exportação" não a torna persistente?

Eu preciso fazer tudo isso através do shell. Obrigado!

    
por user53029 02.09.2015 / 18:21

1 resposta

4

No bash, o "export" embutido exportará a variável para o ambiente do processo do shell. Quaisquer processos iniciados a partir desse shell herdarão o processo desse shell.

Se você quiser que o envvar seja persistente, você deve configurá-lo em algum lugar do qual o software iniciado herdará. Para as vars relacionadas ao código de idioma, use /etc/locale.conf ( manpage ). Para outras variáveis, você precisará encontrar outro lugar. Esse lugar dependerá mais do que o que você está tentando definir para os envios.

Por exemplo, se você deseja definir uma variável de ambiente para um determinado serviço systemd, é necessário adicionar uma diretiva "Environment" apropriada ao arquivo da unidade de sistema. Consulte aqui e procure por "Environment" para saber mais sobre esse assunto.

    
por 02.09.2015 / 19:50