Как мне устранить проблему с локализацией?

Я получаю это сообщение каждый раз, когда делаю что-то вроде запуска или остановки службы.

perl: warning: Setting locale failed.   perl: warning: Please check that your locale settings:           LANGUAGE = "en_US:en",           LC_ALL = (unset),           LC_MESSAGES = "en_US.UTF-8",           LANG = "en_US.UTF-8"       are supported and installed on your system.   perl: warning: Falling back to the standard locale ("C").   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   (Reading database ... 21173 files and directories currently installed.)  Removing bind9 ...   * Stopping domain name service... bind9                                        [ OK ]Processing triggers for man-db ...   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   

Как мне исправить эту ошибку?

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

$ localeLANG=CLANGUAGE=LC_CTYPE=fi_FI.UTF-8LC_NUMERIC="C"LC_TIME="C"LC_COLLATE=fi_FI.UTF-8LC_MONETARY="C"LC_MESSAGES=fi_FI.UTF-8LC_PAPER="C"LC_NAME="C"LC_ADDRESS="C"LC_TELEPHONE="C"LC_MEASUREMENT="C"LC_IDENTIFICATION="C"LC_ALL=

Затем сгенерируйте отсутствующую локаль и перенастроите локали, чтобы обратить на это внимание:

$ sudo locale-gen "en_US.UTF-8"Generating locales...  en_US.UTF-8... doneGeneration complete.$ sudo dpkg-reconfigure localesGenerating locales...  en_US.UTF-8... up-to-dateGeneration complete.

Теперь вы больше не увидите никаких ошибок!

Ничто из предложенного выше не сработало в моем случае (Ubuntu Server 12.04LTS). Что в конце концов помогло, так это внесение в файл /etc/environment:

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

По какой-то причине он отсутствовал. Выходные данные для locale и других команд выглядели так, как будто переменные были определены правильно. Другими словами, не принимайте как должное, что все основные вещи объявлены там, где они должны быть объявлены.

Они должны исчезнуть после выдачи:

sudo locale-gen en_US en_US.UTF-8sudo dpkg-reconfigure locales 

dpkg-reconfigure перенастраивает пакеты после того, как они уже были установлены. Передайте ему имена пакета или пакетов для перенастройки. Он будет задавать вопросы о конфигурации, как и при первой установке пакета.

Просто добавьте следующее в свой .bashrc файл (при условии, что вы используете bash)

export LC_ALL="en_US.UTF-8"

Это распространенная проблема, если вы подключаетесь удаленно, поэтому решение состоит в том, чтобы не пересылать свой язык. Редактировать /etc/ssh/ssh_config и прокомментируйте SendEnv LANG LC_* линия.

Для этого есть команда:

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

Он обновляет /etc/default/locale с предоставленными значениями.

Чтобы применить изменения, вы можете

source /etc/default/locale

Что сработало для меня 12.10, так это:

apt-get install language-pack-en-base  

Это было после dpkg-reconfigure locales не дало никаких результатов.

Не забудьте выйти из своего сеанса SSH (или вашего X11), выйдя и снова войдя в систему. Все эти предложения не сработали для меня, пока я снова не вошел в систему....

Я застрял в странном состоянии, когда мой локальный компьютер настроен на es и поэтому удаленная машина (через vagrant) был предоставлен в необработанном состоянии. Поэтому мне пришлось воспользоваться руководством export= только для того, чтобы способствовать успешному dpkg-reconfigure. Тогда система в порядке.

export LC_ALL="en_US.UTF-8"sudo dpkg-reconfigure locales

Для Ubuntu 12.10 ничего из вышеперечисленного не работало, за исключением решения ratzs. Я рекомендую добавить это в ваш файл /etc/bash.bashrc:

export LC_ALL="en_ZA.UTF-8"export LC_CTYPE="en_ZA.UTF-8"

возможный дубликат Переменные локали не влияют на удаленную оболочку (perl: предупреждение: Настройка локали failed.)

Вам нужно сказать: Ваша машина? Или у вас есть только логин пользователя, и вы не можете изменить системные настройки? (Да, я знаю, что это действительно старый вопрос. И количество неправильных ответов просто ужасает)

По теме: Как установить языковой стандарт?

Простое и постоянное исправление для всех пользователей: locale: Cannot set LC_CTYPE to default locale: No such file or directory locale - Ask Ubuntu