Opensuse

設置語言環境失敗。修復你的系統

  • September 30, 2021

帶有 openSUSE Tumbleweed 的 32 位伺服器:

登錄時,我收到以下警告:

/usr/bin/manpath: 無法設置語言環境;確保 $ LC_* and $ 朗是正確的

為了修復上述錯誤,我執行這些命令來修改系統語言和時間,但我得到了錯誤:

> sudo yast2 language
[sudo] password for root: 
Failed to set locale. Fix your system.
Failed to set locale. Fix your system.

還:

> sudo yast2 timezone
[sudo] password for root: 
Failed to set locale. Fix your system.
Failed to set locale. Fix your system.

我無法弄清楚原因。有人有建議嗎?

更新

語言環境輸出:

> locale 
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=
LC_CTYPE=UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

另一個輸出:

> locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
C
C.utf8
POSIX
aa_DJ
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ET
af_ZA
af_ZA.utf8
agr_PE
ak_GH
am_ET
an_ES
an_ES.utf8

# ... it' a long list

更新

~/.profile即使在註銷甚至重新啟動之後,添加這些行也不能解決問題:

export LANG="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"

新觀察

  1. 直接/物理登錄伺服器:不拋出警告
  2. 從 Linux 筆記型電腦(openSUSE Leap 15.1)通過 SSH 登錄伺服器:未拋出警告
  3. 從 MacBook 筆記型電腦通過 SSH 登錄伺服器:拋出此警告:

/usr/bin/manpath: 無法設置語言環境;確保 $ LC_* and $ 朗是正確的

如此處評論:

啊,這很好解釋。SSH 將您的語言環境與連接一起轉發。因此,您的 Mac 要求的語言環境在您的 Linux 機器上不可用。

要麼將您的 Mac 區域設置更改為一致,要麼將您的 Mac SSH 設置更改為不轉發區域設置: https ://stackoverflow.com/questions/29609371/how-do-not-pass-locale-through-ssh

我通過幾個步驟修復了一些我正在使用的樹莓派。

  1. 我註釋掉en_GB.UTF-8/etc/locale.gen取消註釋en_US.UTF-8
  2. 我添加了行LC_CTYPE=en_US.UTF-8LC_ALL=en_US.UTF-8/etc/default/locale. 您可能需要添加更多這樣的行,例如LC_MESSAGES=en_US.UTF-8.
  3. 我跑了export LC_ALL=en_US.UTF-8
  4. 最後,我跑了sudo locale-gen

如果您locale在這些步驟之後執行,您應該不會看到任何警告,並且您應該看到en_US.UTF-8除了可能LANG和之外的所有欄位LANGUAGEexport LANG=en_US.UTF-8您可以使用和手動更改這些export LANGUAGE=en_US.UTF-8

引用自:https://unix.stackexchange.com/questions/648584