Иногда у меня возникают ошибки локали, и я пытался запустить dpkg-reconfigure locales, чтобы решить эту проблему. Вот результат:
:~$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "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_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "C"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "C"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Я искал / usr / bin / locale, но его нет в моей системе. Мне нужно его создать? Что мне туда положить?
Также я нашел связанный вопрос это говорит о том, что причина его проблемы была в файле sshd_config. В файле была следующая запись:
AcceptEnv LANG LC_*
В основном меня беспокоит то, что это может вызвать проблемы для моего VPS, в противном случае, если ничего серьезного, я буду счастлив проигнорировать проблему. Что я должен делать? Спасибо!
первый:
sudo apt-get purge locales
затем:
sudo aptitude install locales
и знаменитые:
sudo dpkg-reconfigure locales
Это избавляет систему от локалей, затем переустанавливает локали и понижает версию libc6 с 2.19 до 2.13, что является проблемой. Затем снова настраивает локали.
Если это происходит при подключении SSH к вашему серверу, но не на консоли, попробуйте перенастроить ваш клиент ssh (на вашем локальном компьютере). В Mac OS X, например, отредактируйте / private / etc / ssh_config и закомментируйте
# SendEnv LANG LC_*
Благодаря посту бредмана на Доска объявлений Rasberry Pi.
У меня была эта проблема долгое время, и все обычные советы о dpkg-reconfigure locales, locale-gen и т. Д. Не помогли. Итак, я немного поигрался с переменными окружения и обнаружил, что система не работает LC_CTYPE
переменная окружения! UTF-8
не является допустимым значением для него. Установив его на en_US.UTF-8
починил это.
Чтобы сделать изменение постоянным, я побежал
update-locale LC_CTYPE=en_US.UTF-8
который пишет /etc/default/locale
. Затем перезагрузите систему, чтобы все вступило в силу.
Я видел это раньше на старых установках Debian, и, хотя это меня раздражает, я никогда не видел, чтобы это вызывало проблемы.
Если
/usr/bin/locale
отсутствует, попробуйте (как root):
apt-get install libc-bin
который должен установить libc-bin, предоставив / usr / bin / locale.
Эта строка AcceptEnv в вашем sshd_config довольно стандартна и не должна быть причиной вашей проблемы здесь.
Сделал следующее, как Manoj, но добавил его в # ~ / .bashrc:
export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8
Если вы отключили аутентификацию PAM для ssh в /etc/ssh/sshd_config
(UsePAM no
) ответственная конфигурация в /etc/pam.d/login
неэффективен:
session required pam_env.so readenv=1 envfile=/etc/default/locale
Результат: /etc/default/locale
похоже, не действует.
Таким образом, вам нужно настроить свой клиент для отправки переменных LANG или экспорта переменных env в сценарии профиля, например ~/.profile
, ~/bashrc
и т.п.
Если вы получаете ошибки при ssh'ing в удаленную систему и не хотите изменять удаленную систему (например, путем изменения sshd_config), вы можете сделать следующее в своей локальной системе (при условии bash)
export LC_ALL=en_US
export LANGUAGE=en_US
а потом ssh user@remote
На моей свежей установке Debian (минимальные) локали полностью отсутствовали. Установка (aptitude install locales
) и работает locale-gen
все же сделал свое дело. Итак, ребята, сделайте, как сказал Чад Феллер, но проверьте, есть ли у вас пакет locales
установлен первым.
Я использовал немецкий VPS и не мог изменить язык, потому что не был установлен английский языковой пакет.
После установки я наконец смог сменить язык
aptitude install language-pack-en
Mac подключается к новой установке Debian 10. Ни один из ответов, найденных в Google по всему Stack Exchange, не помог. Вот что получилось (и к тому же было простым и надежным):
sed -i "s/^AcceptEnv/#AcceptEnv/g" /etc/ssh/sshd_config
Запустите это на своем компьютере с Debian, и это не позволит подключенному терминалу Mac испортить локали сервера (больше информации).
В качестве бонуса это может даже повысить безопасность сервера.
в системах Debian это решит вашу проблему:
apt-get install locales-all
в системах Ubuntu установите определенный языковой пакет, например:
apt-get install language-pack-en
locale-gen en_US.UTF-8