systemd-nspawn 컨테이너에 로캘 설정(debian jessie)

systemd-nspawn 컨테이너에 로캘 설정(debian jessie)

sudo systemd-nspawn -D ~/debian-tree/Fedora 호스트에서 생성된 Debian 컨테이너에서 실행 중인 vim에 전력선/항공사 기호를 표시하려고 합니다.

이제 다이아몬드 모양의 물음표(��)만 표시됩니다. 로케일을 설정해야 한다고 확신하지만 올바르게 설정하는 방법에 대한 직접적인 답을 찾을 수 없습니다.

산출locale

LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

산출locale -a

C
C.UTF-8
POSIX

답변1

로케일 설정은 데비안 설치 가이드에 문서화되어 있습니다. debootstrap을 사용하여 직접 설치하고 시스템을 직접 구성하는 방법에 대한 몇 가지 팁을 제공하는 부록이 있습니다.

영어 이외의 언어를 사용하도록 로케일을 구성하려면 로케일 지원 패키지를 설치하고 구성하십시오. 현재는 UTF-8 로케일을 사용하는 것이 좋습니다.

# aptitude install locales
# dpkg-reconfigure locales

부록 전체에는 포괄적이지 않다는 면책 조항이 있지만 이는 공식 문서이며 이 특정 접근 방식은 완전히 정확합니다. 스크립팅에 더 적합한 다른 대안이 있습니다. 이 방법은 사용자에게 선택할 로캘을 묻는 메시지를 표시합니다.

두 번째 질문이 있는데, 이는 부록에서도 언급됩니다. 특정 문자 문제에 영향을 미치는지 확실하지 않지만 복잡한 출력과 같은 문제가 발생할 수 있습니다. TERM이 올바르게 설정되었는지 확인해야 합니다. echo $TERM컨테이너 외부에서 실행합니다 . 컨테이너 내에서 예를 들어 export TERM=xterm-256color이 세션의 터미널 유형을 설정하려면 다음을 실행하세요.

나는 이것을 당신을 위해 처리할 방법이 없다고 생각합니다 machinectl login. 컨테이너 내부에서 systemd와 통신하는 방식을 고려하면 부끄러운 일입니다.

컨테이너 내에서 SSH 서버를 실행하는 경우 이를 사용하면 SSH가 TERM을 올바르게 전달하므로 아무 작업도 수행할 필요가 없습니다.

관련 정보