使用 localectl 更改 CentOS 7 中的區域設定不起作用

使用 localectl 更改 CentOS 7 中的區域設定不起作用

我想更改本地化,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 配置的,所以沒有互動式登入 shell。

相關內容