Estou enfrentando um comportamento estranho relacionado à preservação de variáveis de ambiente com sudo no macOS (15.2): sudo -E
não preserva a variável de ambiente PERL5LIB
.
Etapas de reprodução
Defina uma variável de ambiente no shell:
export PERL5LIB=foo
. O comandoenv | grep PERL5LIB
retorna como esperado:PERL5LIB=foo
.No entanto, o comando
sudo -E env | grep PERL5LIB
, não retorna nada. Em contraste, isto funciona:sudo --preserve-env=PERL5LIB env | grep PERL5LIB
. Ele preservaPERL5LIB
. com sucesso.
Isso é confuso porque eu esperava sudo -E
preservar todas as variáveis de ambiente do shell de chamada, incluindo PERL5LIB
. Mas, claramente, não está funcionando dessa forma para esta variável específica.
Pergunta
- Por que não é
PERL5LIB
preservadosudo -E
no macOS? - Esse comportamento é específico de
PERL5LIB
ou afeta outras variáveis também? - Qual é a maneira recomendada e confiável de garantir que isso
PERL5LIB
seja preservado ao usar o sudo?