Оновив мій сервер арки 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

Що відбувається і як це виправити?

Відповіді:


32

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


Наприклад, оновлення, можливо, перезаписало ваш індивідуальний locale.genфайл.
Томас Дікі

@ThomasDickey Більш імовірно, Arch Linux ARM був просто дурним, оскільки Arch Linux ARM робить деякі досить тупі речі в образі за замовчуванням, як доставка з марними пакунками, які не працюють, тому що у них відсутні залежності. Я знаю, що ніколи не торкався цього файлу.
Hitechcomputergeek

І, судячи з імені користувача @ RPiAwesomeness, я здогадуюсь, що йдеться про сервер Raspberry Pi, який працює під управлінням AR Linux Arch Linux. (btw я запускаю 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який вирішує цю проблему


Мені довелося це зробити на додаток до вищезазначеного, щоб виправити це для моєї руки з малиновою аркою. Тому я 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

У цьому питанні згадується Arch Linux, який не використовує apt для управління пакетами.
мат

-1

echo "LC_ALL = en_US.UTF-8" >> / тощо / середовище
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG = en_US.UTF-8"> / тощо / locale .conf
locale-gen en_US.UTF-8


Чому це вирішує проблему? І чим ваша відповідь відрізняється від вже існуючої?
nohillside
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.