zsh, zplug과 oh-my-zsh 시작하기
최종 모습 zsh을 사용하게 된 계기 bash sh을 아주 잘쓰고 있었음 실수로 rm -rf ~를 입력 혼돈의 카오스 닷으로 시작하는 설정 파일들이 날라감 (.bash* 등등) 이렇게 된 이상 그 좋다던 zsh을 사용해보자. 셋업 환경 mac iTerm2 zsh 설치하기 mac은 기본적으로...
더보기docker 컨테이너 내의 locale(로케일) 에러 해결
2017-02-28
특정 docker image를 컨테이너로 만들고 접속해보니 아래와 같은 locale
에러 메세지가 발생했다. 무시하고 작업을 해도 되지만 매우 거슬려서 아래와 같이 추가 설정을 하였다.
bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory
locale
커멘드를 이용해서 현재 시스템에서 사용중인 로케일을 확인해본다.
[root@7b3a3ede1d74 /]# 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=en_US.UTF-8
LC_CTYPE="en_US.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=
locale -a
명령어를 사용해서 현재 시스템에서 사용가능한 로케일을 확인한다.
[root@7b3a3ede1d74 /]# 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_COLLATE to default locale: No such file or directory
C
POSIX
이 정보는 /usr/lib/locale/locale-archive
에 있는 정보이다. 위와 비교해보니 en_US.UTF-8
로케일이 없는 것이 문제 상황으로 파악됬다.
로케일을 정의한 파일들은 /usr/share/i18n/locales
폴더 아래에 있고, charmap(캐릭터맵)에 대한 정보는 /usr/share/i18n/charmaps
폴더 아래에 있다. 이 두가지 정보가 localedef
의 명령어로 컴파일 되며 컴파일 된 내용은 위에서 보았던 /usr/lib/locale/locale-archive
파일안으로 들어가게 된다.
Centos/Fedora에는 locale-gen가 없다. 대신에 localedef를 사용하면 된다.
아래와 같이 입력해서 필요한 로케일을 컴파일 시킨다.
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
option 설명
중요한 옵션은 i
, f
두 가지이다. 이 두개의 옵션으로 로케일 및 캐릭터 맵을 지정한다. 즉 이 두개가 합쳐져서 en_US.UTF-8
이 되는 것이다. 다시 아래와 같이 locale -a
를 입력한다.
[root@7b3a3ede1d74 /]# locale -a
C
en_US.utf8
POSIX
en_US.utf8
이 추가되었고 에러도 사라졌다.
만약 localedef
명령어가 없다면 아래와 같이 설치한다.
yum reinstall glibc-common
zsh, zplug과 oh-my-zsh 시작하기
최종 모습 zsh을 사용하게 된 계기 bash sh을 아주 잘쓰고 있었음 실수로 rm -rf ~를 입력 혼돈의 카오스 닷으로 시작하는 설정 파일들이 날라감 (.bash* 등등) 이렇게 된 이상 그 좋다던 zsh을 사용해보자. 셋업 환경 mac iTerm2 zsh 설치하기 mac은 기본적으로...
더보기