로케일을 설정할 수 없습니다. $LC_* 및 $LANG이 올바른지 확인하세요!

로케일을 설정할 수 없습니다. $LC_* 및 $LANG이 올바른지 확인하세요!

항상 새 패키지를 설치하려고 하면 다음 메시지가 나타납니다.

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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

내 운영 체제는 Debian Jessie 8.3(Mate)이며 영어와 프랑스어 키보드가 있습니다. 로케일을 입력하면 다음을 얻습니다.

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=en_US.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.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=

답변1

데비안은 소스 코드 형식으로 로케일을 제공합니다. 명시적인 컴파일이 필요합니다. 그 이유는 컴파일된 로캘이 더 많은 디스크 공간을 사용하지만 대부분의 사람들은 그 중 극히 일부만 사용하기 때문입니다.

루트로 실행하고 dpkg-reconfigure locales목록에서 원하는 로케일을 선택한 다음(설정에 따라 en_GB및 둘 다 필요합니다. 및 en_US.UTF-8둘 다 선택하는 것이 좋습니다 en_US) 키를 누릅니다.en_GB.UTF-8<OK>

또는 을 편집하고 /etc/locale.gen원하는 로케일에 대한 행의 주석 처리를 제거한 후 locale-gen루트로 실행하십시오.

(참고: Ubuntu에서는 다르게 작동합니다. locale-gen생성하려는 로케일을 인수로 사용하여 실행하세요. 예: sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8.)

locales-all대안으로 데비안에는 이제 대신 설치할 수 있는 패키지가 있습니다 locales. 여기에는 모든 로캘이 미리 생성되어 있습니다. 단점은 더 많은 디스크 공간을 차지한다는 것입니다(112MB 대 16MB).

답변2

최고 등급의 솔루션이 제 경우에는 도움이 되지 않았기 때문에 다음을 사용했습니다.

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales

그 후 로그아웃했다가 로그인했는데 오류가 사라졌습니다.

답변3

라즈베리 파이(또는 다른 것?)에서 이 문제가 발생하고 파이에 SSH로 연결할 때 오류가 발생하는 경우 다른 두 가지 해결 방법이 있습니다.

하나는 /etc/ssh/sshd_config파이를 편집하고 해당 줄을 주석 처리하는 것 입니다.

AcceptEnv LANG LC_*

예를 들어sudo nano /etc/ssh/sshd_config

그런 다음 SSH 서버를 다시 시작해야 합니다.

sudo systemctl restart ssh

다른 하나는 클라이언트 컴퓨터에 있습니다(파이 아님) 편집 /etc/ssh/ssh_config(위와 다른 경로)하고 해당 행을 주석 처리합니다.

SendEnv LANG LC_*

답변4

locales이 패키지 (또는 locales-all사용 중인 데비안 버전에 따라 en_GB 로케일)를 설치해야 합니다 .

이런 종류의 오류를 방지하기 위한 해결 방법: LANG=C루트로 설정하여아니요로케일.

관련 정보