King of Stock

리눅스(Debian) 로케일 설정 본문

IT 기술

리눅스(Debian) 로케일 설정

king of stock 2022. 10. 14. 18:57

본 포스트는 필자가 GCP 환경에 생성한 VM 인스턴스에(Debian OS) 한글이 깨지는 현상을 확인하고 한글 로케일 설정을 진행한 과정을 기록했다.

작성된 본 포스트는 이것을 읽는 사람을 고려하지 않았기 때문에 생소한 용어나 혹은 단어가 사용될 수 있다.

OS 정보

본 포스트의 작업은 Debian Linux 환경에서 진행했고, 관련 OS 정보는 아래 예시와 같이 파일의 내용을 출력하여 확인할 수 있다.

cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

로케일 확인

현재 설정된 로케일을 확인하는 방법은 다양하지만 다음과 같이 단순하게 환경변수에 설정된 값을 출력해보는 것이 제일 간단해 보인다.

echo $LANG
C.UTF-8

실행을 해보니 출력된 값이 내가 원하는 ko_KR.UTF-8 값으로 나오지 않는 것을 확인 했다. 즉 현재 한글 로케일이 설정되지 않은 상태이다. Debian Linux에서 다른 방식으로 설정된 로케일을 확인하려면 다음과 같이 설정 파일의 내용을 출력하여 확인할 수 있다.

cat /etc/default/locale
LANG=C.UTF-8

설정할 수 있는 로케일 정보를 확인

현재 OS 환경에서 설정할 수 있는 로케일 정보를 열람해야 한다.

locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
C
C.UTF-8
POSIX

위에서 보면 내가 설정할 ko_KR.UTF-8 값은 보이지 않는 게 확인되었다.

이런 상태라면 OS 환경에 한글 로케일 사용을 위해서 로케일 데이터를 설치해야 한다.

한글 로케일 사용을 위한 로케일 데이터 설치(선택)

한글 로케일 사용을 위해서 로케일 데이터를 설치한다. 이 데이터는 https://packages.debian.org/bullseye/locales 주소에서 자세한 내용을 확인할 수 있다.

이제 로케일 데이터를 apt-get 커맨드를 통해서 설치한다.

sudo apt-get update
sudo apt-get install -y locales

업데이트를 한번 실행한 뒤에 설치를 진행하는 게 더 좋으니 업데이트 이후 로케일 데이터 설치를 진행한다.

기본 로케일을 한글 로케일로 설정

필요한 로케일 데이터의 설치를 완료했으면 이제 현재 OS 환경에 기본 로케일로 설정할 수 있는 상태가 된다.

로케일 데이터를 생성하고 기본 로케일 선택을 할 수 있게 CUI 환경에서 도와주는 커맨드를 다음과 같이 실행했을 때 오류가 발생한다면 위에서 언급된 locales 설치를 하지 않은 것이다.

sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_TERMINAL = "iTerm2",
    LC_CTYPE = "UTF-8",
    LANG = "C.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("C.UTF-8").
dpkg-query: package 'locales' is not installed and no information is available
Use dpkg --info (= dpkg-deb --info) to examine archive files.
/usr/sbin/dpkg-reconfigure: locales is not installed

(locales 설치를 완료한 이후에) 로케일 재설정을 위해서 아래와 같이 커맨드를 실행하여 CUI 환경으로 진입한다.

sudo dpkg-reconfigure locales

 

아래의 이미지는 위에서 실행한 재설정 커맨드의 실행 결과이다. 보시다시피 CUI 기반으로 사용자의 편의를 위해서 원하는 로케일 데이터를 선택할 수 있다.

 

CUI 사용키

  • 이동: ↑ ↓
  • 선택 및 해제: space
  • 저장: enter

이미지는 ko_KR.UTF-8 로케일을 선택하였다.

위에 과정에서 키보드의 enter를 누르면 아래와 같이 기본 로케일을 선택하는 과정이 있다. 여기서 ko_KR.UTF-8 선택 후 저장한다.

CUI 환경에서 저장을 완료하면 아래와 비슷한(?) 한글 로케일 데이터를 생성하고 기본 로케일을 한글로 지정하는 과정을 형태로 볼 수 있다.

sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_TERMINAL = "iTerm2",
	LC_CTYPE = "UTF-8",
	LANG = "C.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("C.UTF-8").
Generating locales (this might take a while)...
  ko_KR.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LC_TERMINAL = "iTerm2",
	LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LC_TERMINAL = "iTerm2",
	LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

그리고 마지막으로 재시작을 해준다.

sudo reboot

'IT 기술' 카테고리의 다른 글

Subclassing enum.Enum in python  (0) 2022.03.06
C# EntityFramework 설정  (0) 2021.02.28
VSCode diff 툴  (0) 2020.08.25
[DNS] ubuntu server 18.04 DNS 서버 구성해보기  (0) 2019.12.21
[shell] if문에서 문자열 비교가 안될때  (0) 2019.12.05
Comments