Atualizei meu servidor arch linux e agora recebo o tmux: preciso da localidade UTF-8 (LC_CTYPE), mas tenho ANSI_X3.4-1968

29

Atualizei recentemente meu servidor Arch Linux e, durante esse processo, o tmux foi atualizado. Eu estava usando tmuxenquanto a atualização estava em andamento e a usei depois, mas durante a mesma sessão SSH.

Agora, no entanto, sempre que tento emitir qualquer tmuxcomando, recebo este erro:

tmux: need UTF-8 locale (LC_CTYPE) but have ANSI_X3.4-1968

Aqui está a saída do locale -aservidor:

$ locale -a
C
POSIX

e na minha máquina (Ubuntu 15.10):

$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX

O que está acontecendo e como corrigi-lo?

RPiAwesomeness
fonte

Respostas:

32

A mesma coisa exata aconteceu comigo. Com base no que Thomas disse acima, pude corrigi-lo descomentando en_US.UTF-8 UTF-8em meu /etc/locale.genarquivo (anteriormente nenhuma das linhas tinha sido descomentada) e depois executando locale-gen.

Hitechcomputergeek
fonte
Por exemplo, uma atualização pode ter substituído seu locale.genarquivo personalizado .
Thomas Dickey
@ThomasDickey Provavelmente, o Arch Linux ARM estava apenas sendo estúpido, pois o Arch Linux ARM faz algumas coisas bastante estúpidas na imagem padrão, como remessa com pacotes inúteis que não funcionam porque faltam dependências. Eu sei que nunca toquei esse arquivo, no entanto.
Hitechcomputergeek
E, a julgar pelo nome de usuário do @ RPiAwesomeness, acho que o servidor em questão é um Raspberry Pi executando o Arch Linux ARM. (btw eu corro Ubuntu no meu laptop e Arch no meu servidor Pi também)
Hitechcomputergeek
@Hitechcomputergeek De fato, o desktop é o Ubuntu adequado 15.10 e o servidor é um Pi 2 com o Arch Linux ARM: D
RPiAwesomeness
1
Eu tive o mesmo problema ao atualizar para o Debian 9 Stretch, porque o código do idioma do sistema é en_CA.UTF-8. Isso não foi comentado em /etc/locale.gen. Mas o en_US.UTF-8 foi comentado e, sem isso, o tmux lançou o erro exato. Portanto, isso sugere que se seu local for en_US, você não verá esse problema.
Professor Falken
3

Seguir este link resolve meu problema:

sudo localectl set-locale LANG=en_CA.UTF-8
# or change to en_US.UTF-8 depends on your locale-gen

ele gera um arquivo /etc/locale.confque corrige esse problema

Kokizzu
fonte
Eu tive que fazer isso além do acima para corrigir isso no meu braço em arco framboesa. Então eu usei sudo localectl set-locale LANG=nl_BE.UTF-8também encontrei um erro org.freedesktop.PolicyKit1 not provided on daemonque me colocou no pé errado por um tempo, mas esse erro foi simplesmente porque eu executei o comando sem sudo(eu tenho o mau hábito de deixar um terminal aberto que já está elevado)
oneindelijk
2

Eu também tinha esse. Minha solução foi…

apt search locales

Eu tenho uma lista, então instale isto…

apt install locales-all
bulldogbat
fonte
A pergunta menciona o Arch Linux, que não usa o apt para gerenciamento de pacotes.
matt
-1

echo "LC_ALL = pt_BR.UTF-8" >> / etc / environment
echo "pt_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG = pt_US.UTF-8"> / etc / locale .conf
locale-gen pt_US.UTF-8

Dan
fonte
Por que isso resolve o problema? E como sua resposta difere das já existentes?
nohillside