
Ich möchte die Lokalisierung ändern, en_US.utf8
sodass alle Logmeldungen von Anwendungen auf Englisch angezeigt werden. Das funktioniert, wenn ich dem Befehl das Präfix füge LANG=en_US.utf ./my-command
, dann ist jede Ausgabe von ./my-command
Englisch.
localectl
scheint das richtige Werkzeug zu sein, um es dauerhaft zu machen, also habe ich es versucht
[root@cnx65 ~]# localectl set-locale LANG=en_US.utf8
Aber wenn jetzt ausgeführt wird ./my-command
, ist die Ausgabe immer noch auf Deutsch. Laut localectl
haben wir Folgendes en_US.utf8
eingestellt:
[root@cnx65 ~]# localectl
System Locale: LANG=en_US.utf8
VC Keymap: de_alt_UTF-8
X11 Layout: us
wobei locale
auch die $LANG
Variable noch deutsch anzeigt:
[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
Ich habe außerdem mit Folgendem überprüft, ob das Gebietsschema vorhanden ist localectl -a
:
[root@cnx65 ~]# locale -a | grep en_US.utf8
en_US.utf8
Warum funktioniert das nicht? Das ist für mich nicht nachvollziehbar. Wie man sieht, wurden alle Befehle als Root ausgeführt, ein Berechtigungsproblem kann also nicht vorliegen.
Ich möchte die LANG
Umgebungsvariable nicht einfach irgendwo global festlegen, wie hier, /etc/profiles
da der Server von Ansible bereitgestellt wurde und es daher keine interaktive Anmelde-Shell gibt.