Я получил предупреждение 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
.