로케일을 찾을 수 없거나 로케일을 설정하지 못했습니다. 어떻게해야합니까?


32

VPS (OpenVZ)에 데비안 7 i386을 설치했습니다. 로케일을 제외한 모든 것이 제대로 작동합니다.

[...]
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "pl_PL.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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
[...]

내가 시도한 것 :

  1. 로케일 생성 update-locale LC_ALL="pl_PL.UTF-8"--표시 : http://www.wklej.org/id/1248438/
  2. apt-get install --reinstall locales http://www.wklej.org/id/1248442/
  3. 와 같은 dpkg-reconfigure locales+ 설정 pl_PL.UTF-8, pl_PL.ISO-8859-2또는 en_US: http://www.wklej.org/id/1248446/
  4. export LC_ALL=pl_PL.UTF-8 (루트에서도) :

    -bash: warning: setlocale: LC_ALL: cannot change locale (pl_PL.UTF-8)
    

로케일을 표시하는 내용은 다음과 같습니다.

root:~# 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=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

/ var / log에는 흥미로운 것이 없습니다. 저장소를 공식 + 제거 및 수동 설치 로케일로 변경해도 문제가 해결되지 않아 데비안 7을 새로 설치할 때마다 나타납니다.

답변:


22

로케일이 생성되지 않은 것 같습니다. 해당 라인 을 눌러 pl_PL.UTF-8올바르게 선택 했습니까 ?dpkg-reconfigure localesspace

그렇다면 라인

pl_PL.UTF-8 UTF-8

in /etc/locale.gen은 주석 처리되지 않았습니다 (=로 시작하지 않음 #). 이 문제를 해결해야하는 경우 locale-gen로케일을 생성 하기 위해 실행해야 합니다. 출력은 다음과 같아야합니다.

Generating locales (this might take a while)...
   pl_PL.UTF-8... done
Generation complete.

생성하려는 로케일을 출력하지 않으면 시스템에 문제가있는 것 같습니다. 한 가지 이유는 localepurge설치 했기 때문일 수 있습니다 . 파일이 없거나 파일이 /usr/share/locale/pl/LC_MESSAGES없거나 /usr/share/locale/pl_PL/LC_MESSAGES시스템이 손상된 경우입니다.


1
작동합니다! /etc/locale.gen에서 선택된 위치는 여전히 주석 처리되어 있으며 왜 그런지 모르겠습니다 (예, 스페이스 바를 기억합니다)-CHMOD에 문제가있을 수 있습니다. 감사!
luke_g

1
참고 -plow기본이다, 그래서 생략 할 수 있습니다. dpkg-reconfigure원하는 항목을 선택한 후 로케일 생성을 호출하는 로만 전화 하면됩니다.
Stéphane Chazelas

@ StephaneChazelas 덕분에 답변에서 제거하고 사용법을 명확하게했습니다 locale-gen.
jofel

또 다른 가능성은 시스템 등을 en_US로 구성했지만 /etc/locale.gen주석 처리를하지 않은 경우 en_GB입니다. 여기이 스레드에서이 실수를 발견 unix.stackexchange.com/q/287716/16920 , 너무 throubleshoot 전략에 추가하십시오.
Léo Léopold Hertz 준영

12

먼저:

sudo apt-get purge locales

그때:

sudo aptitude install locales

그리고 유명한 :

sudo dpkg-reconfigure locales

이것은 로케일 시스템을 제거한 다음 로케일을 다시 설치하고 libc6을 2.19에서 2.13으로 다운 그레이드합니다. 이것이 문제입니다. 그런 다음 로케일을 다시 구성하십시오.


도움이 될 것 같지만 다음 apt-get dist-upgrade은 다시 깨뜨릴 것입니다.
sep

왜 고장 날까요? 그 시점에서 로케일이 사용중인 libc6과 호환되지 않아야합니까? 내 libc6이 다른 프로그램을 사용하도록 변경되었습니다. 시스템이 올바르게 작동하도록 기본 libc6 버전으로 다시 다운 그레이드했습니다. 이 시점에서 apt-get dist-upgrade와 매우 호환되어야합니다
tkjef

1
apt-get install locales내 Docker 데비안 컨테이너에 로케일 이 설치되었습니다.
Stephane

7

빠르고 쉬운 방법 (다른 디스크보다 더 많은 디스크를 사용하지만) :

apt install locales-all

1

달려 봐

locale -a

당신이 가지고 있다면

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

이 상황에 대한 해결책은 패키지 로캘 (glibc 패키지 [1])을 데비안 플레이버 또는 glibc-all-langpacks CentOS / Fedora에 설치하는 것입니다

[1] https://tracker.debian.org/pkg/glibc


glibc-locale패키지가 데비안에 존재하지 않음
Yajo

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