Назад | Перейти на главную страницу

Измененный языковой стандарт в CentOS 7 с использованием localectl не работает

Я хочу изменить локализацию на 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, поэтому интерактивной оболочки входа в систему нет.