
Я хочу изменить локализацию, 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, так что проблем с правами быть не могло.
Я не хочу просто устанавливать LANG
переменную окружения где-то глобально, как в , /etc/profiles
поскольку сервер был подготовлен Ansible, поэтому интерактивной оболочки входа нет.