
en_US.utf8
애플리케이션의 모든 로그 메시지가 영어로 표시되도록 현지화를 변경하고 싶습니다 . 이것은 명령 앞에 를 붙이면 작동합니다 LANG=en_US.utf ./my-command
. 이제 의 모든 출력은 ./my-command
영어입니다.
localectl
영구적으로 만드는 데 적합한 도구인 것 같아서 시도해 보았습니다.
[root@cnx65 ~]# localectl set-locale LANG=en_US.utf8
그러나 지금 실행하면 ./my-command
출력은 여전히 독일어로 표시됩니다. 에 따르면 다음을 설정 localectl
했습니다 en_US.utf8
.
[root@cnx65 ~]# localectl
System Locale: LANG=en_US.utf8
VC Keymap: de_alt_UTF-8
X11 Layout: us
여기서 locale
변수에는 $LANG
여전히 독일어가 표시됩니다.
[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
또한 다음과 같은 로케일이 존재하는지 확인했습니다 localectl -a
.
[root@cnx65 ~]# locale -a | grep en_US.utf8
en_US.utf8
왜 이것이 작동하지 않습니까? 나에게는 추적이 불가능하다. 보시다시피 모든 명령은 루트로 실행되었으므로 권한 문제가 발생할 수 없습니다.
LANG
서버가 Ansible에 의해 프로비저닝되었으므로 전역적으로 환경 변수를 설정하고 싶지 않으므로 /etc/profiles
대화형 로그인 셸이 없습니다.