
アプリケーションからのすべてのログ メッセージが英語で表示されるように、ローカリゼーションを に変更したいと思います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
なぜこれが機能しないのでしょうか? 私には追跡できません。ご覧のとおり、すべてのコマンドは root として実行されたため、権限の問題は発生しませんでした。
サーバーは Ansible によってプロビジョニングされているため、対話型ログイン シェルがないため、LANG
環境変数を のようにグローバルに設定するだけでは不十分です。/etc/profiles