Обновил мой сервер arch linux и теперь я получаю tmux: нужен язык UTF-8 (LC_CTYPE), но есть ANSI_X3.4-1968

29

Я недавно обновил свой сервер Arch Linux, и во время этого процесса tmux обновился. Я использовал tmuxво время обновления и использовал его потом, но все во время одного сеанса SSH.

Однако теперь, когда я пытаюсь выполнить любую tmuxкоманду, я получаю эту ошибку:

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

Вот вывод с locale -aсервера:

$ locale -a
C
POSIX

и на моей машине (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

Что происходит и как мне это исправить?

RPiAwesomeness
источник

Ответы:

32

То же самое случилось со мной. Основываясь на том, что сказал Томас выше, я смог исправить это, раскомментировав en_US.UTF-8 UTF-8свой /etc/locale.genфайл (ранее ни одна из строк не была закомментирована), а затем запустив его locale-gen.

Hitechcomputergeek
источник
Например, обновление может перезаписать ваш настроенный locale.genфайл.
Томас Дики
@ThomasDickey Скорее всего, Arch Linux ARM просто глупо, поскольку Arch Linux ARM делает некоторые довольно глупые вещи в образе по умолчанию, такие как доставка с бесполезными пакетами, которые не работают из-за отсутствия зависимостей. Я знаю, что никогда не трогал этот файл, хотя.
Hitechcomputergeek
И, судя по имени пользователя @ RPiAwesomeness, я предполагаю, что рассматриваемый сервер - Raspberry Pi с Arch Linux ARM. (кстати, я запускаю Ubuntu на своем ноутбуке и Arch на моем Pi-сервере тоже)
Hitechcomputergeek,
@Hitechcomputergeek Действительно, рабочий стол - это собственно Ubuntu 15.10, а сервер - это Pi 2 с Arch Linux ARM: D
RPiAwesomeness
1
У меня была такая же проблема при обновлении до Debian 9 Stretch, потому что моя системная локаль - en_CA.UTF-8. Это было без комментариев в /etc/locale.gen. Но en_US.UTF-8 был закомментирован и без этого tmux выдал эту точную ошибку. Так что это говорит о том, что если ваша локаль en_US, то вы не увидите эту проблему.
Профессор Фалькен
3

Переход по этой ссылке решает мою проблему:

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

он генерирует файл, /etc/locale.confкоторый решает эту проблему

Kokizzu
источник
Я должен был сделать это в дополнение к вышесказанному, чтобы исправить это для моей малиновой арки. Таким образом, я использовал, sudo localectl set-locale LANG=nl_BE.UTF-8я также столкнулся с ошибкой, org.freedesktop.PolicyKit1 not provided on daemonкоторая на какое-то время поставила меня не на ту ногу, но эта ошибка была просто потому, что я выполнил команду без sudo(у меня плохая привычка оставлять терминал открытым, который уже поднят)
oneindelijk
2

Возможно, ваше обновление заменило псевдоним локали, который вы использовали, и не предоставило полезного пути обновления к новым именам. Вы можете восстановить информацию о локали на сервере, но имейте в виду, что проблема может быть в вашем файле /etc/locale.genили в locale.confфайле.

Дальнейшее чтение:

Томас Дики
источник
2

У меня был и этот. Мое решение было ...

apt search locales

Я получил список, а затем установить это ...

apt install locales-all
bulldogbat
источник
В вопросе упоминается Arch Linux, который не использует apt для управления пакетами.
матовый
-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

Дэн
источник
Почему это решает проблему? И чем ваш ответ отличается от уже существующих?
Nohillside