5

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

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

и некоторые другие проблемы, связанные с локалью.

РЕДАКТИРОВАТЬ: Ограничение это моим собственным ответом только кажется, ретроспективно, довольно неэффективно. Пожалуйста, не стесняйтесь добавлять свои 2цента. Или столько, сколько вы можете сэкономить ....

4 ответа4

10

Мы полностью работаем в оболочке (bash).

Первое, что должен сделать каждый

sudo dpkg-reconfigure locales

Выходными данными могут быть упомянутые выше ошибки и список локалей, которые генерирует скрипт. Обратите внимание, что сгенерированные локали являются единственными действительными для вашей системы Как видите, языковые настройки - это просто набор переменных среды. Вы можете просто для удовольствия попробовать другой язык bash, например так:

LANG=es_NI.UTF-8 bash
ls somedirectorynamethatdoesnotexistonyoursystem

Ту хаблас испаньол? :-)(если es_NI.UTF-8 не было в вашем списке языков, просто выберите другой)

Хорошо. Очевидно, переменная окружения LANG помогает с остальными настройками, потому что в нашем испанском bash теперь мы можем сделать

dpkg-reconfigure locales

или любая команда, чьи сообщения об ошибках привели вас сюда, и не должно быть ошибок. Если есть, то есть нечто более зловещее неправильное, что не будет освещено в этом посте.

Итак, где мы устанавливаем эту переменную LANG? Быстрый поиск в каталоге /etc/ (с помощью rgrep LANG /etc/*) приводит нас к файлу /etc/default/locale . Там вы можете установить значение переменной на что-то другое / правильное. Например

LANG=en_US.UTF-8

(Это всегда должно работать) Чтобы закончить это: переменные, упомянутые в сообщениях об ошибках, все "происходят" из LANG, что означает, что они по умолчанию имеют значение LANG, но вы можете установить их по своему вкусу, если хотите свою оболочку говорить на другом языке. В этом помогает пакет language-env.

sudo apt-get install language-env
set-language-env

Сценарий предназначен для автоматического создания записей для вашего .bashrc и т.д.

Я сам не пробовал.

Я надеюсь, что это помогает кому-то.

Btw:

  1. Вы можете найти сгенерированные локали в ls usr/share/locale
0

Я перепробовал много разных решений, и ни одно из них не помогло мне в Debian 7.

Итак, я добавил экспорт LC_ALL=en_US.UTF-8 в /etc/default/locale и предупреждения исчезли.

0

Я использовал немецкий VPS и не мог изменить локаль, потому что не было установлено никакого языкового пакета для английского языка.

После установки я наконец смог сменить локаль

aptitude install language-pack-en
0

Короткий ответ:

Запустите dpkg-reconfigure locales как root.

(Находясь в диалоговом окне, нажимайте клавишу Enter пока не найдете свой язык, посмотрите его номер, снова нажимайте клавишу Enter , пока вас не попросят ввести номер. Введите номер вашего языка, Enter , готово. Если вы не знаете лучше, возьмите UTF8-версию вашего языка)

Ресурсы: https://wiki.debian.org/Locale

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .