J'ai mis à jour mon serveur Linux Arch et maintenant j'obtiens tmux: j'ai besoin des paramètres régionaux UTF-8 (LC_CTYPE) mais j'ai ANSI_X3.4-1968

29

J'ai récemment mis à jour mon serveur Arch Linux et au cours de ce processus, tmux a été mis à jour. J'utilisais tmuxpendant la mise à niveau et je l'ai utilisé par la suite, mais tout au cours de la même session SSH.

Maintenant, cependant, chaque fois que j'essaie d'émettre une tmuxcommande, j'obtiens cette erreur:

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

Voici la sortie de locale -asur le serveur:

$ locale -a
C
POSIX

et sur ma machine (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

Que se passe-t-il et comment y remédier?

RPiAwesomeness
la source

Réponses:

32

La même chose exacte m'est arrivée. En s'appuyant sur ce que Thomas a dit ci-dessus, j'ai pu le corriger en décommentant en_US.UTF-8 UTF-8mon /etc/locale.genfichier (auparavant aucune des lignes n'avait été décommentée), puis en exécutant locale-gen.

Hitechcomputergeek
la source
Par exemple, une mise à niveau peut avoir écrasé votre locale.genfichier personnalisé .
Thomas Dickey
@ThomasDickey Il est plus probable qu'Arch Linux ARM était juste stupide, car Arch Linux ARM fait des choses plutôt stupides dans l'image par défaut, comme l'envoi de paquets inutiles qui ne fonctionnent pas car il manque des dépendances. Je sais cependant que je n'ai jamais touché à ce fichier.
Hitechcomputergeek
Et, à en juger par le nom d'utilisateur de @ RPiAwesomeness, je suppose que le serveur en question se trouve être un Raspberry Pi exécutant Arch Linux ARM. (btw je lance Ubuntu sur mon ordinateur portable et Arch sur mon serveur Pi aussi)
Hitechcomputergeek
@Hitechcomputergeek En effet, le bureau est Ubuntu propre 15.10 et le serveur est un Pi 2 avec Arch Linux ARM: D
RPiAwesomeness
1
J'ai eu le même problème lors de la mise à niveau vers Debian 9 Stretch, car les paramètres régionaux de mon système sont en_CA.UTF-8. Cela n'a pas été commenté dans /etc/locale.gen. Mais en_US.UTF-8 a été commenté et sans cela, tmux a jeté cette erreur exacte. Cela suggère donc que si votre locale est en_US, vous ne verrez pas ce problème.
Professeur Falken
3

Suivre ce lien résout mon problème:

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

il génère un fichier /etc/locale.confqui résout ce problème

Kokizzu
la source
J'ai dû faire cela en plus de ce qui précède pour résoudre ce problème pour mon bras d'arc en cours d'exécution de framboise. J'ai donc utilisé sudo localectl set-locale LANG=nl_BE.UTF-8j'ai également rencontré une erreur org.freedesktop.PolicyKit1 not provided on daemonqui m'a mis du mauvais pied pendant un certain temps, mais cette erreur était simplement parce que j'ai exécuté la commande sans sudo(j'ai la mauvaise habitude de laisser un terminal ouvert qui est déjà élevé)
oneindelijk
2

Peut-être que votre mise à niveau a remplacé l'alias de paramètres régionaux que vous utilisiez et n'a pas fourni de chemin de mise à niveau utile aux nouveaux noms. Vous pouvez régénérer les informations de paramètres régionaux sur le serveur, mais gardez à l'esprit que le problème peut être dans votre fichier /etc/locale.genou locale.conf.

Lectures complémentaires:

Thomas Dickey
la source
2

J'avais aussi celui-ci. Ma solution était…

apt search locales

J'ai une liste, puis installez ça…

apt install locales-all
bulldogbat
la source
La question mentionne Arch Linux, qui n'utilise pas apt pour la gestion des packages.
mat
-1

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

Dan
la source
Pourquoi cela résout-il le problème? Et en quoi votre réponse diffère-t-elle des réponses déjà existantes?
nohillside