로케일을 설정하려고 했지만 en_US.UTF-8
성공하지 못했습니다. 인터넷의 다른 답변에 따르면 먼저 다음을 사용하여 로케일을 생성해야 합니다.
sudo locale-gen en_US.UTF-8
그럼 적용해봐
sudo dpkg-reconfigure locales
그러나 locale-gen
실행할 때 이상한 일이 발생합니다.
user@Host /home/user $ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
en_US.ISO-8859-1... done
Generation complete.
보시다시피 실제로는 UTF-8을 생성하지 않지만 계속해서 ISO-8859-1로 되돌아갑니다. LC_ALL
으로 설정할 수 없습니다 en_US.UTF-8
. 아마도 빌드되지 않기 때문일 것입니다.
내가 뭐 잘못 했어요? 저는 데비안 8.1을 사용하고 있습니다.
답변1
Debian에서 Ubuntu의 방법을 적용하려고 했습니다. 이는 일반적으로 작동하지만 이 특별한 경우에는 작동하지 않습니다.
Ubuntu는 Debian에서 파생되었으며 설치 프로그램과 GUI를 제외하고는 많이 변경되지 않았습니다. 순서 locale-gen
는 변경되는 몇 가지 다른 항목 중 하나입니다. 이유는 모르겠습니다.
Debian에서 이 locale-gen
명령은 인수를 사용하지 않으며 구성된 로케일 목록을 기반으로 컴파일된 로케일 정의를 다시 생성합니다. 사용할 로케일 선택을 수정하려면 파일을 편집한 후 명령을 /etc/locale.gen
실행하십시오 . locale-gen
또는 dpkg-reconfigure locales
루트로 실행하고 원하는 추가 로케일을 선택하고(필요하지 않은 로케일은 선택 취소) 확인을 누릅니다.
Ubuntu에서는 인수 없이 명령을 실행하면 locale-gen
구성된 로케일 목록을 기반으로 컴파일된 로케일 정의가 다시 생성됩니다. 그러나 일부 매개변수를 전달하면 해당 매개변수가 목록에 추가되고 즉시 생성됩니다. 로케일 목록은 에 저장됩니다 /var/lib/locales/supported.d/local
. dpkg-reconfigure locales
실행하면 선택 항목을 수정할 기회를 주지 않고 컴파일된 로케일만 다시 생성됩니다.
요약하자면, en_US.UTF-8
사용 가능한 로캘 목록에 추가하려면 다음을 수행하세요.
- 데비안, 대화형:
dpkg-reconfigure locales
- 데비안, 자동화:
sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && locale-gen
- 우분투, 자동화:
locale-gen en_US.UTF-8
답변2
인터넷을 맹목적으로 신뢰하는 대신 실제로 locale-gen에 대한 man 파일을 읽은 후 locale-gen
실제로 에서 생성해야 한다는 것을 발견했습니다 /etc/locale.gen
. 주석을 제거하여 en_US.UTF-8
성공적으로 생성했습니다.