Я получил предупреждение setlocale LC_CTYPE, когда я подключился к бродячим CentOS 6

Я начинающий с Vagrant. Я пытаюсь создать виртуальную машину (Cent OS 6) на моем компьютере с vagrant. Когда я запускаю vagrant ssh, он выводит это предупреждение:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

Когда я запускаю 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
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=

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

Ответ 1

Для CentOS или Amazon AMI Linux добавьте эти строки в /etc/environment (создайте его, если он не существует):

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

Чтобы отредактировать этот файл с помощью консоли SSH, попробуйте

sudo nano /etc/environment

редактировать

Для дистрибутивов, связанных с Debian (Ubuntu и т.д.), Вы должны проверить, что /etc/default/locale пуст. Это результат выбора None в dpkg-reconfigure locales который предлагается, если пользователи получают доступ через SSH (см. Debian Wiki).

/etc/environment устарела после Debian Lenny (5.0).

Ответ 2

Под root в bashrc добавьте следующее:

vi /root/.bashrc

export LC_ALL=en_US.UTF-8

export LANG=en_US.UTF-8

После этого перезагрузите свою систему.

Ответ 3

попробуйте следующее:

localedef -i en_US -f UTF-8 en_US.UTF-8

Ответ 4

В моем случае на Slackware64 14.1 я получил ошибку:

-bash: warning: setlocale: LC_ALL: cannot change locale (en_DK.UTF-8)

Оказалось, что отсутствуют пакеты glibc.

Установка пакетов:

glibc-2.17-x86_64-11_slack14.1
glibc-i18n-2.17-x86_64-11_slack14.1

Решила проблему.

Мой /etc/profile.d/lang.sh содержит:

export LANG=en_DK.UTF-8
export LANGUAGE=en_DK.UTF-8
export LC_ALL=en_DK.UTF-8

export LC_COLLATE=C

Наслаждаться.

Ответ 5

Вы можете установить LC_ALL на C, например

export LC_ALL=C

или префикс перед подключением к вашей виртуальной машине:

LC_ALL=C ssh [email protected]

Примечание: вы также можете установить SetEnv для вашей конфигурации SSH (man ssh_config), как описано ниже.


Чтобы сделать его постоянным, вы можете добавить следующее правило в ваш ~/.ssh/config:

Host *
  SetEnv LC_ALL=C

Предполагая, что ваш сервер получил следующую строку в /etc/ssh/sshd_config:

AcceptEnv LANG LC_*

Проверьте также: man ssh_config и man sshd_config.