Configurando o código do idioma em um contêiner systemd-nspawn (debian jessie)

1

Tentando obter símbolos powerline / airline para mostrar em vim rodando em um repositório Debian criado com sudo systemd-nspawn -D ~/debian-tree/ em um host Fedora.

No momento, ele apenas mostra pontos de interrogação em diamantes ( ) Tenho certeza de que preciso definir a localidade, mas não consigo encontrar uma resposta direta sobre como fazer isso corretamente.

Saída de 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=

saída de locale -a

C
C.UTF-8
POSIX
    
por hermancain 12.07.2016 / 16:10

1 resposta

1

A configuração da localidade está documentada no guia de instalação da Debian - há um apêndice que fornece algumas dicas sobre como instalar diretamente com o debootstrap e configurar o sistema você mesmo.

To configure your locale settings to use a language other than English, install the locales support package and configure it. Currently the use of UTF-8 locales is recommended.

# aptitude install locales
# dpkg-reconfigure locales

O apêndice como um todo tem um aviso de que não é abrangente, mas é uma documentação oficial e esse método específico está perfeitamente correto. Existem outras alternativas que podem ser preferidas para o script - esse método solicita que o usuário escolha quais localidades.

Há uma segunda questão que o apêndice também menciona de passagem. Não tenho certeza se isso afeta seu problema de caractere específico, mas pode causar problemas com uma saída sofisticada similar. Você precisa ter certeza de que TERM está definido corretamente. Execute echo $TERM fora do contêiner. Dentro do contêiner, execute, e. export TERM=xterm-256color para definir o tipo de terminal para esta sessão.

Eu não acho que machinectl login cuida disso para você também, o que é triste, considerando como ele fala com o systemd dentro do container.

Se você executar um servidor SSH dentro do contêiner, basta usá-lo, o SSH encaminhará o TERMO corretamente e você não precisará fazer nada.

    
por 26.05.2017 / 13:09