Назад | Перейти на главную страницу

Как исправить настройки локали в Debian squeeze

Иногда у меня возникают ошибки локали, и я пытался запустить 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 и т.п.

Больше: http://wiki.debian.org/Locale#Standard

Если вы получаете ошибки при 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