Atualização:
A definição de variáveis de ambiente global ainda deve ser realizada em /etc/environment
, mas, como você observou, usar sudo -s
faz com que o efeito dessas variáveis seja "desaparecido".
A razão para isso é que sudo
tem uma política de redefinir o Ambiente e definir um caminho seguro . Está ativado por padrão:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Assim, o que estiver definido no /etc/environment
do caminho será substituído por sudo
.
A página de manual para sudoers
states:
env_reset If set, sudo will reset the environment to only contain
the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
variables. Any variables in the caller's environment
that match the env_keep and env_check lists are then
added. The default contents of the env_keep and
env_check lists are displayed when sudo is run by root
with the -V option. If the secure_path option is set,
its value will be used for the PATH environment
variable. This flag is on by default.
Como solução alternativa, você pode usar sudo su
que fornecerá um shell com privilégios de root, mas contendo o PATH correto.
Resposta original
Você deve defini-lo em /etc/environment
.
Teste sudo YOUR_TEXT_EDITOR /etc/environment
(certifique-se de criar um backup primeiro).
Para mais informações: EnvironmentVariables
Variáveis de ambiente de todo o sistema
Configurações de variáveis de ambiente que afetam o sistema como um todo (em vez de apenas um usuário em particular) não deve ser colocado em nenhum os muitos scripts de nível de sistema que são executados quando o sistema ou o sessão de desktop são carregados, mas em
/etc/environment
- Este arquivo é especificamente destinado a configurações de variáveis de ambiente em todo o sistema. Não é um arquivo de script, mas sim consiste em expressões de atribuição, uma por linha. Especificamente, O arquivo armazena as configurações de localidade e caminho do sistema.Não recomendado:
/etc/profile
- Este arquivo é executado sempre que um shell de login bash é inserido (por exemplo, ao efetuar login no console ou por ssh), como bem como pelo DisplayManager quando a sessão da área de trabalho é carregada. Isto é provavelmente o arquivo que você será referido ao pedir veterano UNIX administradores do sistema sobre variáveis de ambiente. No Ubuntu, no entanto, este arquivo faz pouco mais que invocar o arquivo /etc/bash.bashrc.
/etc/bash.bashrc
- Esta é a versão de todo o sistema do arquivo ~ / .bashrc. O Ubuntu é configurado por padrão para executar este arquivo sempre que um usuário entra em um shell ou no ambiente de área de trabalho.