
Quero alterar a localização para en_US.utf8
que todas as mensagens de log dos aplicativos sejam exibidas em inglês. Isso funciona quando eu prefixo o comando com LANG=en_US.utf ./my-command
, agora todas as saídas ./my-command
são em inglês.
localectl
parece a ferramenta certa para torná-lo permanente, então tentei
[root@cnx65 ~]# localectl set-locale LANG=en_US.utf8
Mas quando estiver em execução ./my-command
, a saída ainda estará em alemão. De acordo com localectl
, definimos en_US.utf8
:
[root@cnx65 ~]# localectl
System Locale: LANG=en_US.utf8
VC Keymap: de_alt_UTF-8
X11 Layout: us
onde locale
e também a $LANG
variável mostra ainda alemão:
[root@cnx65 ~]# locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
[root@cnx65 ~]# echo $LANG
de_DE.UTF-8
Também verifiquei que a localidade existe com localectl -a
:
[root@cnx65 ~]# locale -a | grep en_US.utf8
en_US.utf8
Por que isto não está funcionando? Não é rastreável para mim. Como você pode ver, todos os comandos foram executados como root, portanto não pode haver problema de permissão.
Não quero apenas definir a LANG
variável de ambiente em algum lugar globalmente, como /etc/profiles
desde que o servidor foi provisionado pelo Ansible, portanto, não há shell de login interativo.