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


49

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

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

내 OS는 프랑스어 키보드로 영어를 사용하는 데비안 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=

답변:


62

데비안은 로케일을 소스 형태로 제공합니다. 명시 적으로 컴파일해야합니다. 그 이유는 컴파일 된 로캘이 훨씬 더 많은 디스크 공간을 사용하지만 대부분의 사람들은 그 중 일부만 사용하기 때문입니다.

실행 dpkg-reconfigure locales목록에서 원하는 로케일을 선택, 루트로 (설정, 당신은 필요로 en_GB하고 en_US.UTF-8- 나는 선택하는 것이 좋습니다 en_USen_GB.UTF-8뿐만 아니라)를 눌러 다음 <OK>.

또는을 편집 /etc/locale.gen하고 원하는 로케일의 행을 주석 해제하고 locale-gen루트로 실행하십시오 .

(참고 : 우분투에서는 다르게 작동합니다 : locale-gen예를 들어 인수로 생성하려는 로케일로 실행 하십시오 sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8.)

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


1
그것은 작동했지만 로그 아웃 한 다음 다시 로그인 한 후에 만 ​​작동했습니다.
Forivin

나도 일 했어!
Jamie Ivanov

편집 /etc/locale.gen은 나를 위해 일하지 않았지만 (로그 아웃 / 로그인 locale-gentmux: need UTF-8 locale (LC_CTYPE)Debian 4.9.82
했음)

2
@eapo 내 대답에서 언급했듯이을 편집 /etc/locale.gen 하고 실행 해야 합니다 locale-gen.
질 'SO-정지 악'

나는 en_US.UTF-8당신과 자신의 로케일을 활성화하는 것에 대해 조금 놓쳤다 . 나는 어려운 길을 찾았고 여기로 돌아와서 스스로 여기에 있다는 것을 깨닫기 전에 스스로 대답했습니다.
Alastair McCormack

19

내 경우 최고 등급의 솔루션이 도움이되지 않았 으므로이 솔루션을 사용했습니다.

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

그 후, 로그 아웃하고 로그인했는데 오류가 없습니다.


2
LC_ALL은 모든 것을 무시하므로 사용하지 않는 것이 좋습니다. 테스트 할 때만 사용하고 시작 파일에 설정하지 마십시오. 에 따라 : wiki.debian.org/Locale
Pitone Maledetto

6

이 명령은 내 생명을 구했습니다

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8

5

라즈베리 파이 (또는 다른?) 에서이 문제가 발생하고 파이에 ssh 할 때 오류가 발생하면 2 가지 다른 솔루션이 있습니다

하나는 /etc/ssh/sshd_config파이에서 편집 되고 라인을 주석 처리합니다.

AcceptEnv LANG LC_*

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

그 후 ssh 서버를 다시 시작해야합니다

sudo systemctl restart ssh

다른 하나는 클라이언트 시스템 ( pi가 아닌 ) 편집 /etc/ssh/ssh_config(위와 다른 경로)에 있으며 라인을 주석 처리합니다.

SendEnv LANG LC_*

둘 다 주석 처리되지 않았지만 여전히 문제가 발생합니다. (RPi3, macOS10.14)
jorijnsmit

지금 라인을 주석 처리 했습니다 . 실제로 테스트 할 기회는 없지만 더 논리적으로 들립니다 ... 감사합니다.
jorijnsmit

2

패키지 locales(또는 locales-all데비안 버전에 따라 en_GB 로켈) 를 설치해야합니다 .

이러한 오류가없는 해결 방법 : 로케일 LANG=C을 사용 하지 않도록 root로 설정하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.