차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
linuxfromscratch:12.1:160-configuring_the_system_locale [2024/05/18 16:47] – 만듦 - 바깥 편집 127.0.0.1 | linuxfromscratch:12.1:160-configuring_the_system_locale [2024/06/15 13:18] (현재) – baecy | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ^ Linux From Scratch - Version 12.1-systemd | ||
+ | ^ Chapter 9. System Configuration | ||
+ | |[[.159-configuring_the_linux_console: | ||
+ | |리눅스 콘솔 설정 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 9.7. 시스템 로캘 구성 ===== | ||
+ | |||
+ | 모국어 지원을 위해 일부 환경 변수가 필요합니다. 이를 올바르게 설정하면 다음과 같은 결과가 나타납니다. | ||
+ | |||
+ | * 프로그램의 출력이 모국어로 번역됩니다. | ||
+ | * 문자를 문자, 숫자 및 기타 클래스로 올바르게 분류. 이는 영어가 아닌 로캘의 명령줄에서 **bash**가 ASCII가 아닌 문자를 올바르게 받아들이는 데 필요합니다. | ||
+ | * 국가에 맞는 올바른 알파벳순 정렬 순서 | ||
+ | * 적절한 기본 용지 크기 | ||
+ | * 화폐, 시간 및 날짜 값의 올바른 서식 지정 | ||
+ | |||
+ | 아래의 //< | ||
+ | |||
+ | 다음과 같이 실행하여 Glibc에서 지원하는 모든 로캘 목록을 확인할 수 있습니다. | ||
+ | |||
+ | <code bash> | ||
+ | locale -a | ||
+ | </ | ||
+ | |||
+ | Charmaps에는 여러 가지 별칭이 있을 수 있습니다 예를 들어 '' | ||
+ | |||
+ | <code bash> | ||
+ | LC_ALL=< | ||
+ | </ | ||
+ | |||
+ | en_GB.iso88591 로캘의 경우 다음과 같이 출력됩니다. | ||
+ | |||
+ | <code bash> | ||
+ | ISO-8859-1 | ||
+ | </ | ||
+ | |||
+ | 그 결과 최종 로캘 설정은 en_GB.ISO-8859-1이 됩니다. 위의 휴리스틱을 사용하여 찾은 로캘을 Bash 시작 파일에 추가하기 전에 테스트하는 것이 중요합니다. | ||
+ | |||
+ | <code bash> | ||
+ | LC_ALL=< | ||
+ | LC_ALL=< | ||
+ | LC_ALL=< | ||
+ | LC_ALL=< | ||
+ | </ | ||
+ | |||
+ | 위의 명령은 언어 이름, 해당 로캘에서 사용하는 언어, 문자 인코딩, 현지 통화, 전화번호 국제 코드가 순서대로 출력되야 합니다. 위의 명령 중 하나라도 실패하고 아래와 유사한 메시지가 표시되면 8장에서 로캘이 설치되지 않았거나 기본 설치 Glibc에서 지원되지 않는다는 뜻입니다. | ||
+ | |||
+ | <code bash> | ||
+ | locale: Cannot set LC_* to default locale: No such file or directory | ||
+ | </ | ||
+ | |||
+ | 이 경우 **localedef** 명령을 사용하여 원하는 로캘을 설치하거나 다른 로캘을 선택하는 것을 고려해야 합니다. 아래의 내용들은 Glibc에서 이러한 오류 메시지가 표시되지 않는다고 가정합니다. | ||
+ | |||
+ | 다른 패키지도 로캘 이름이 기대에 미치지 못하는 경우 잘못 작동할 수 있지만 반드시 오류 메시지가 표시되지는 않을 수 있습니다. 이러한 경우 다른 Linux 배포판에서 해당 로캘을 어떻게 지원하는지 조사하면 유용한 정보를 얻을 수 있습니다. | ||
+ | |||
+ | 적절한 로캘 설정이 결정되면 ''/ | ||
+ | |||
+ | <code bash> | ||
+ | cat > / | ||
+ | LANG=< | ||
+ | EOF | ||
+ | </ | ||
+ | 셸 프로그램 ''/ | ||
+ | |||
+ | 대화형 로그인 셸은 ''/ | ||
+ | |||
+ | 로그인 셸은 ''/ | ||
+ | |||
+ | <code bash> | ||
+ | cat > / | ||
+ | # Begin / | ||
+ | |||
+ | for i in $(locale); do | ||
+ | unset ${i%=*} | ||
+ | done | ||
+ | |||
+ | if [[ " | ||
+ | export LANG=C.UTF-8 | ||
+ | else | ||
+ | source / | ||
+ | |||
+ | for i in $(locale); do | ||
+ | key=${i%=*} | ||
+ | if [[ -v $key ]]; then | ||
+ | export $key | ||
+ | fi | ||
+ | done | ||
+ | fi | ||
+ | |||
+ | # End / | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | systemd **localectl** 유틸리티를 사용하여 ''/ | ||
+ | |||
+ | <code bash> | ||
+ | localectl set-locale LANG="< | ||
+ | </ | ||
+ | |||
+ | **locale** 출력에서 '' | ||
+ | |||
+ | <code bash> | ||
+ | localectl set-locale LANG=" | ||
+ | </ | ||
+ | |||
+ | <WRAP info center round 90%> | ||
+ | **참고** \\ **localectl** 명령은 루트 환경에서는 작동하지 않는다는 점에 유의하세요. 이 명령은 LFS 시스템이 systemd로 부팅된 후에만 사용할 수 있습니다. | ||
+ | </ | ||
+ | |||
+ | C(기본값)와 en_US(미국 영어 사용자에게 권장되는) 로캘은 서로 다릅니다. C는 US-ASCII 7비트 문자 집합을 사용하며 비트가 높은 바이트는 유효하지 않은 문자로 취급합니다. 따라서 예를 들어, 해당 로캘에서는 **ls** 명령이 해당 문자를 물음표로 대체합니다. 또한 Mutt 또는 Pine에서 이러한 문자를 사용하여 메일을 보내려고 시도하면 RFC를 준수하지 않는 메시지가 전송됩니다(발신 메일의 문자 집합이 '' |