항상 새 패키지를 설치하려고 하면 다음 메시지가 나타납니다.
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
루트로 설정하여아니요로케일.