Mein Arch Linux Server wurde aktualisiert und jetzt bekomme ich tmux: brauche das UTF-8-Gebietsschema (LC_CTYPE), habe aber ANSI_X3.4-1968

29

Ich habe kürzlich meinen Arch Linux-Server aktualisiert und während dieses Vorgangs wurde tmux aktualisiert. Ich habe verwendet, tmuxwährend das Upgrade ausgeführt wurde, und habe es anschließend verwendet, aber alle während derselben SSH-Sitzung.

Wenn ich jetzt jedoch versuche, einen tmuxBefehl auszuführen, erhalte ich den folgenden Fehler:

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

Hier ist die Ausgabe von locale -aauf dem Server:

$ locale -a
C
POSIX

und auf meinem Rechner (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

Was ist los und wie behebe ich das?

RPiAwesomeness
quelle

Antworten:

32

Mir ist genau dasselbe passiert. Aufbauend auf dem, was Thomas oben gesagt hat, konnte ich es beheben, indem en_US.UTF-8 UTF-8ich die Kommentare in meiner /etc/locale.genDatei entfernte (vorher war keine der Zeilen kommentarlos) und dann lief locale-gen.

Hitechcomputergeek
quelle
Beispielsweise hat ein Upgrade möglicherweise Ihre angepasste locale.genDatei überschrieben .
Thomas Dickey
@ThomasDickey Wahrscheinlicher ist, dass Arch Linux ARM nur dumm war, da Arch Linux ARM einige ziemlich dumme Dinge im Standard-Image ausführt, wie das Versenden mit nutzlosen Paketen, die nicht funktionieren, weil ihnen Abhängigkeiten fehlen. Ich weiß, dass ich diese Akte nie berührt habe.
Hitechcomputergeek
Und nach dem Benutzernamen von @ RPiAwesomeness zu urteilen, schätze ich, dass es sich bei dem fraglichen Server zufällig um einen Raspberry Pi handelt, auf dem Arch Linux ARM ausgeführt wird. (Übrigens starte ich Ubuntu auf meinem Laptop und Arch auch auf meinem Pi-Server)
Hitechcomputergeek
@Hitechcomputergeek In der Tat ist es, Desktop ist Ubuntu richtige 15.10 & Server ist ein Pi 2 mit Arch Linux ARM: D
RPiAwesomeness
1
Ich hatte das gleiche Problem beim Upgrade auf Debian 9 Stretch, weil mein Systemgebietsschema en_CA.UTF-8 ist. Das wurde in /etc/locale.gen nicht kommentiert. Aber en_US.UTF-8 wurde auskommentiert und ohne diesen tmux warf genau diesen Fehler. Wenn Ihr Gebietsschema also "en_US" lautet, wird dieses Problem nicht angezeigt.
Professor Falken
3

Der folgende Link löst mein Problem:

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

Es wird eine Datei generiert /etc/locale.conf, die dieses Problem behebt

Kokizzu
quelle
Ich musste dies zusätzlich zu dem oben genannten tun, um dies für meinen Himbeerlaufbogenarm zu beheben. Also bin sudo localectl set-locale LANG=nl_BE.UTF-8ich auch auf einen Fehler org.freedesktop.PolicyKit1 not provided on daemongestoßen, der mich für eine Weile auf den falschen Fuß gesetzt hat, aber dieser Fehler lag einfach daran, dass ich den Befehl ohne ausgeführt habe sudo(ich habe die schlechte Angewohnheit, ein Terminal offen zu lassen, das bereits erhöht ist)
oneindelijk
2

Möglicherweise hat Ihr Upgrade den von Ihnen verwendeten Alias ​​für das Gebietsschema ersetzt und keinen nützlichen Upgrade-Pfad zu den neuen Namen angegeben. Sie können Gebietsschemainformationen auf dem Server neu generieren. Beachten Sie jedoch, dass das Problem möglicherweise in Ihrer Datei /etc/locale.genoder in Ihrer liegt locale.conf.

Weitere Lektüre:

Thomas Dickey
quelle
2

Ich hatte auch diesen. Meine Lösung war ...

apt search locales

Ich habe eine Liste und installiere diese…

apt install locales-all
Bulldogbat
quelle
In der Frage wird Arch Linux erwähnt, das apt nicht für die Paketverwaltung verwendet.
Matt
-1

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

Dan
quelle
Warum löst dies das Problem? Und wie unterscheidet sich Ihre Antwort von den bereits vorhandenen?
Nohillside