![Redhat의 잘못된 시스템 로케일](https://linux55.com/image/185108/Redhat%EC%9D%98%20%EC%9E%98%EB%AA%BB%EB%90%9C%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EB%A1%9C%EC%BC%80%EC%9D%BC.png)
(새로 설치) 에서는 Redhat 7.9
예제에 표시된 대로 많은 명령이 경고를 반환합니다.
# yum repolist
Failed to set locale, defaulting to C
로케일을 확인하면 다음이 반환됩니다.
# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
C.UTF-8
시스템이 왜 다음과 같은지 모르겠습니다 .
# cat /etc/locale.conf
LANG=en_US.UTF-8
또한 다음을 실행할 때:
# localectl set-locale LANG=en_US.UTF-8
새 세션에서 올바른 로케일 설정을 얻었지만 "su -"
로그아웃하거나 호스트로 다시 이동하면 해당 설정이 사라집니다..."sudo -i"
"ssh"
# su -
# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
# exit
logout
$ sudo -i
# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
$ ssh host
[host]$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
구성된 콘텐츠의 로케일을 영구적으로 설정하는 방법:/etc/locale.conf
$ cat /etc/locale.conf
LANG=en_US.UTF-8
답변1
근본 원인은 SSH 클라이언트가 설정한 "잘못된" 로케일이었습니다.
...
ssh
기본적으로 세션은ssh
클라이언트(명령이 실행되는 위치)로부터 로케일 환경 변수를 허용하며, 이는 서버가 설정하려는 내용을 재정의할 수 있습니다.
답변2
dnf install glibc-langpack-en
AlmaLinux 9.1에서 이 문제를 해결했습니다. 제안해 주신 @Sérgio에게 감사드립니다!