Невозможно установить LC_CTYPE в качестве локали по умолчанию: нет такого файла или каталога

У меня есть точный вопрос как это, но нет никакого решения. Я пытался, но это не сработало

Как исправить проблему с локалью?

$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

$ locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
C
C.UTF-8
en_US.utf8
POSIX

Это из-за en_US.UTF-8 и en_US.utf8 несоответствие?

Как исправить?

57
задан 13 April 2017 в 15:24

12 ответов

Вывод от эти locale команда указывает, что у Вас есть эта неправильная строка в Вашей среде:

LC_CTYPE="UTF-8"

("UTF-8" не является допустимым именем локали.)

Это обычно прибывает от /etc/default/locale. Удалите ту строку, если это там, и перевход в систему.

, Если это не прибывает оттуда, это может прибыть из Вашей конфигурации оболочки, или если Вы зарегистрированы удаленно через SSH от конфигурации клиентской машины.

6
ответ дан 13 April 2017 в 15:24

Эта та же проблема (LC_CTYPE=UTF-8, который является неправильным) может произойти, когда Вы входите в систему по ssh от Mac до поля Linux, и Ваш терминал автоматически устанавливает переменные среды. Существует флажок для этого. Снимите флажок с ним, и Вы хороши пойти. В iTerm это находится в профиле-> Терминальная Вкладка.

35
ответ дан 13 April 2017 в 15:24

Я имел подобную проблему и добавил ниже строк в моем /etc/default/locale файл:

LC_CTYPE="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"

я получил это из этого сообщения: , Как я устраняю свою проблему локали?

27
ответ дан 13 April 2017 в 15:24

Откройте терминал и стреляйте ниже команды:

export LC_ALL="en_US.UTF-8"
49
ответ дан 13 April 2017 в 15:24

/etc/default/locale файл может иметь дополнительный (но ненужный) строки: файл В качестве примера может быть похожим на это:

#  File generated by update-locale
LANG=en_US.UTF-8
LANGUAGE="en_IN:en

, Чтобы разобраться и успешно генерировать и реконфигурировать локали, удалите или прокомментируйте все строки из этого файла кроме:

LANG=en_US.UTF-8

файл должен наконец быть похожим:

#  File generated by update-locale
LANG=en_US.UTF-8
# LANGUAGE="en_IN:en

После этого выполнение dpkg-reconfigure locales, избранный en_US.UTF-8 при запросе выбор локали, и необходимо быть хорошими для движения. Вы получите Generation complete. сообщение, когда процесс будет завершен.

3
ответ дан 13 April 2017 в 15:24

просто выполните следующее:

sudo apt-get upgrade

это генерирует, все определяет местоположение, затем установило значение по умолчанию на США:

export LC_ALL="en_US.UTF-8"
0
ответ дан 5 October 2019 в 12:02
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales
9
ответ дан 22 November 2019 в 23:42

Это управляет, спас мою жизнь

sudo echo "LC_ALL=en_US.UTF-8" >> /etc/environment
sudo echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
sudo echo "LANG=en_US.UTF-8" > /etc/locale.conf
sudo locale-gen en_US.UTF-8
5
ответ дан 22 November 2019 в 23:42

только с этой работой для меня

sudo dpkg-reconfigure locales
sudo locale-gen
19
ответ дан 22 November 2019 в 23:42

Мне удалось вызвать это самому при миграции файлов точки корневого каталога в новую машину, и мне не удалось определить причину некоторое время вследствие ищущих файлов для LC_ но нет LOC.

~/.bashrc файл, который я скопировал, имел следующее:

export LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale

(конкретным значением здесь был в связи с предшествующими экспериментами с GNU Guix на старой машине; но соответствующий факт просто, что переменная среды была установлена на теперь недопустимый путь.)

Это привело к следующей ошибке при запущении различных программ:

Warning: locale not supported by C library, locale unchanged

И эти ошибки при выполнении locale:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Удаление (или комментирование) LOCPATH строка решила мои вопросы.

0
ответ дан 22 November 2019 в 23:42
$ sudo export LC_All=C.UTF-8 (you should use it)
$ sudo update-locale
1
ответ дан 12 March 2020 в 11:33

После того, как я попробовал всевозможные способы исправить это, я, наконец, понял: что, если проблема была на другой стороне SCP? Видите ли, я столкнулся с этим, когда пытался передать файл на свой сервер в облаке. Оба работают под управлением Ubuntu. Теперь я пробовал все эти вещи выше, такие как установка LC_ALL и локаль и т. д., но ничего не сработало. Только после того, как мне пришло в голову делать подобные вещи на стороне сервера, я исправил это.

Итак, я подключился к своему серверу по ssh и запустил:

sudo pkg-reconfigure locales

и теперь, когда я перехожу со своего домашнего рабочего стола на свой сервер в облаке, я больше не вижу ошибок этой локали.

0
ответ дан 13 August 2020 в 15:25

Другие вопросы по тегам:

Похожие вопросы: