Я только что установил CentOS 6 и всякий раз, когда я вхожу в систему через SSH удаленно, я получаю следующую ошибку:
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)
Когда я набираю «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=
В чем может быть проблема? Как я могу решить эту проблему?
Ответы:
На сервере, с которого вы используете ssh, у вас есть языковой стандарт, установленный через переменную окружения? При рассмотрении моей установки CentOS 6 единственная локаль, которую я могу найти поддерживаемой, определяется как
en_US.utf8
(обнаружена с помощьюlocale -a
команды). Может ли это быть проблемой?В моем тестировании, когда я установил
LC_ALL
переменную окруженияen_US.UTF-8
ssh'd для сервера,POSIX
в моем случае вывод команды locale был установлен на . Это так же, как когда я НЕ установил (т.е. не установил)LC_ALL
переменную перед ssh'ing.Когда я установил
LC_ALL
переменнуюen_US.utf8
or илиen_US.utf-8
, ssh'd для моего блока CentOS 6, вывод локали был таким же, как и в исходном окне.Обратите внимание, что я не использовал заглавные буквы также для UTF.
источник
Решил эту проблему, отключив «Задать переменные среды локали при запуске» в «Настройки терминала»> «Дополнительно» согласно этому снимку экрана.
ПРИМЕЧАНИЕ. Если вы используете iTerm2, вы можете отключить опцию «Автоматически устанавливать переменные локали» в «Предпочтения»> «Профили»> «Терминал».
источник
unset LC_CTYPE
илиexport LC_CTYPE=en_US.UTF-8
исправить проблему после входа в систему.Простой способ:
добавлять
к
/etc/sysconfig/i18n
.источник
Для меня работало добавление символической ссылки на сервер CentOS, например:
После того, как вы выполните эти команды, как эта работа:
Если вы этого не сделаете, эта последняя команда завершится с ошибкой:
Теперь, еще более простым решением является просто добавление этой строки в / etc / bashrc на сервере:
источник
У меня есть это конкретное сообщение при входе с Solaris X на хост Centos.
Проблема исходит из 2 настроек:
Отправка связанных с локалью переменных среды SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
На моем исходном хосте эти настройки были установлены следующим образом:
SOURCE # LANG = LC_CTYPE = fr_FR.UTF-8 LC_NUMERIC = fr_FR.UTF-8 LC_TIME = fr_FR.UTF-8 LC_COLLATE = fr_FR.UTF-8 LC_MONETARY = fr_FR.UTF-8 LC_MESSAGES = fr.UTF-8
Но, как вы можете видеть, LC_MESSAGES имеет значение fr.UTF-8, что не является опцией на моем хосте назначения.
Проблема была решена принудительно на моем исходном хосте, на .bash_profile: # export LC_ALL = fr_FR.UTF-8 export LANG = fr_FR.UTF-8
Я мог бы решить эту проблему, попросив мой хост dest не брать эту переменную из любого соединения ssh (как правило, или создав файл локали ssh_config для моего пользователя)
источник
В локальной системе Centos 6.2: Это не помогло:
Это сработало:
Я также удалил
locale-archive
в/usr/lib/locale
. Я не знаю, было ли это необходимо.источник
Это было мое исправление в прошлом для ошибок локали.
Запустите следующее: locale-gen
Затем отредактируйте /etc/locale.gen. Убедитесь, что следующее не прокомментировано:
источник
С Iterm2 все по-другому.
Перейти
Iterm2 -> Preferences
, затем Перейти наProfiles
вкладку и выберитеTerminal
вкладку снизу.Перейти в
Environment
категорию и снять отметку;Наконец, закройте и начните новый сеанс.
источник
и убедитесь, что он
LC_ALL="en_US.UTF-8"
находится в / etc / sysconifg / i18n или добавлен в негопример содержания
источник
редактировать
/etc/sysconfig/i18n
Изменить
LANG="us"
наLANG="en_US"
Сохранить и выйти, выйти и снова войти.
источник