Как зафиксировать настройки локали в Debian, сжимают

получил его с:

set :repository,  "/home/me/git_repo/myapp.git"
set :local_repository,  "ssh://me@mydomain.com/home/me/git_repo/myapp.git"
16
задан 13 April 2017 в 15:14
13 ответов

I я видел это раньше при установке более старых версий Debian, и, хотя это меня раздражает, я никогда не видел, чтобы это вызывало проблемы.

Если

  /usr/bin/locale 

отсутствует, попробуйте (как root):

  apt-get install libc-bin

, который должен установить libc-bin, предоставление /usr/bin/locale.

Эта строка AcceptEnv в вашем sshd_config довольно стандартна и не должна быть причиной вашей проблемы здесь.

2
ответ дан 2 December 2019 в 20:39

Если вы получаете ошибки во время ssh'ing к удаленной системе и не хотите изменять удаленную систему (например, путем изменения sshd_config), вы можете сделать следующее в вашей локальной системе (при условии, что bash)

export LC_ALL=en_US
export LANGUAGE=en_US

, а затем ssh user @ remote

1
ответ дан 2 December 2019 в 20:39

Выполнил следующее, как Manoj, но добавил его в # ~ / .bashrc:

export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8
2
ответ дан 2 December 2019 в 20:39

В моей свежей установке Debian (минимальные) локали полностью отсутствовали. Однако установка ( aptitude install locales ) и запуск locale-gen сделали свое дело. Итак, ребята, сделайте то, что упомянул Чад Феллер, но сначала проверьте наличие пакета locales .

1
ответ дан 2 December 2019 в 20:39

У меня была эта проблема долгое время, и все обычные советы по поводу dpkg-reconfigure locales, locale-gen и т. Д. Не помогли. Итак, я немного поигрался с переменными окружения и обнаружил, что система работает с переменной окружения LC_CTYPE ! UTF-8 не является допустимым значением. Установка на en_US.UTF-8 исправила его.

Чтобы сделать изменение постоянным, я запустил

update-locale LC_CTYPE=en_US.UTF-8

, который записывает в / etc / default / locale . Затем перезагрузите систему, чтобы изменения вступили в силу полностью.

7
ответ дан 2 December 2019 в 20:39

Если вы отключили аутентификацию PAM для ssh в / etc / ssh / sshd_config ( UsePAM no ) в соответствующей конфигурации в /etc/pam.d/login не действует:

требуется сеанс pam_env.so readenv = 1 envfile = / etc / default / locale

Результат: / etc / default / locale , похоже, не действует.

Таким образом, вы должны настроить свой клиент для отправки переменных LANG или экспорта переменных env в сценарии профиля, например ~ / .profile , ~ / bashrc и т. д.

Подробнее: http://wiki.debian.org/Locale#Standard

0
ответ дан 2 December 2019 в 20:39

Если это происходит при подключении SSH к вашему серверу, но не на консоли, попробуйте перенастроить свой ssh-клиент (на вашем локальном компьютере). В Mac OS X, например, отредактируйте / private / etc / ssh_config и закомментируйте

# SendEnv LANG LC_*

Благодаря сообщению bredman на доске объявлений Rasberry Pi .

8
ответ дан 2 December 2019 в 20:39

ni akọkọ:

sudo apt-get purge locales

lẹhinna:

sudo aptitude install locales

ati olokiki:

sudo dpkg-reconfigure locales

Eyi n yọ eto awọn agbegbe kuro, lẹhinna tun tun fi awọn agbegbe ati awọn downgrades libc6 sori ẹrọ lati 2.19 si 2.13 eyiti o jẹ ọrọ naa . Lẹhinna tunto awọn agbegbe lẹẹkansi.

9
ответ дан 2 December 2019 в 20:39

Я использовал немецкий VPS и не мог изменить языковой стандарт, потому что не был установлен английский языковой пакет.

После установки я наконец смог изменить языковой стандарт

aptitude install language-pack-en
0
ответ дан 2 December 2019 в 20:39

в системах Debian это решит вашу проблему:

apt-get install locales-all

в системах Ubuntu установите определенный языковой пакет, например:

apt-get install language-pack-ru

locale-gen en_US.UTF-8

0
ответ дан 2 December 2019 в 20:39

Mac подключается к новой установке Debian 10. Ни один из ответов, найденных в Google по всему Stack Exchange, не помог. Вот что получилось (и тоже было просто и надежно):

sed -i "s/^AcceptEnv/#AcceptEnv/g" /etc/ssh/sshd_config

Запустите это на своем компьютере с Debian, и это предотвратит исправление локалей сервера подключающимся терминалом Mac (подробнее).

В качестве бонуса это может даже повысить безопасность сервера.

1
ответ дан 4 December 2019 в 13:31

У меня была эта проблема, которая очень беспокоила и спамила окно терминала. Как я видел, все решения связаны с пакетом locales и настройками, но основной причиной является SSH!

Удаленный сервер Linux, только что установленный Debian Buster жалуется:

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
LANGUAGE=en_US:en
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=

Я подключаюсь к удаленным системам из терминала MacOS, который имеет настройку:

uname -a
Darwin mac-pro.lan 19.6.0 Darwin Kernel Version 19.6.0: Tue Nov 10 00:10:30 PST 2020; root:xnu-6153.141.10~1/RELEASE_X86_64 x86_64

set | grep LC_
LC_CTYPE=UTF-8

Вот оно! Теперь отредактируйте /etc/ssh/sshd_config и закомментируйте сквозную передачу переменной LC_:

# Allow client to pass locale environment variables
#AcceptEnv LANG LC_*

Перезапустите демон ssh:

systemctl restart sshd 

выйдите из системы, снова войдите в систему, и vualia:

locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.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=

Не беспокойтесь о каждом один сервер, просто исправьте свою сторону:

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

если вы используете zsh, используйте вместо этого ~/.zprofile.

0
ответ дан 6 January 2021 в 17:45

Еще один вариант — использовать команду grep для поиска определенных локалей.

## For example, search for English India ##
grep en_IN /etc/locale.gen
 
## Search for English US ##
grep en_US /etc/locale.gen
 
## Search for Japanese ##
grep ja_JP /etc/locale.gen

затем,

felipe@SDF-1:~$ tail -f /etc/locale.gen
# zh_HK BIG5-HKSCS
# zh_HK.UTF-8 UTF-8
# zh_SG GB2312
# zh_SG.GBK GBK
# zh_SG.UTF-8 UTF-8
# zh_TW BIG5
# zh_TW.EUC-TW EUC-TW
# zh_TW.UTF-8 UTF-8
# zu_ZA ISO-8859-1
# zu_ZA.UTF-8 UTF-8

^C
felipe@SDF-1:~$ locale

LANG=en_US.UTF-8

LANGUAGE=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8

felipe@SDF-1:~$

также, помогло мне это:

felipe@SDF-1:~$ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
Generation complete.
felipe@SDF-1:~$ sudo localedef -i en_US -f UTF-8 en_US.UTF-8
felipe@SDF-1:~$ sudo export LANGUAGE=en_US.UTF-8
sudo: export: command not found
felipe@SDF-1:~$  sudo export LANG=en_US.UTF-8
sudo: export: command not found
felipe@SDF-1:~$ export LANGUAGE=en_US.UTF-8
felipe@SDF-1:~$ export LANG=en_US.UTF-8
felipe@SDF-1:~$ export LC_ALL=en_US.UTF-8
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
felipe@SDF-1:~$ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
Generation complete.
felipe@SDF-1:~$ export LC_CTYPE=en_US.UTF-8
felipe@SDF-1:~$ export LC_ALL=en_US.UTF-8
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
felipe@SDF-1:~$ 
felipe@SDF-1:~$ 
felipe@SDF-1:~$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.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=en_US.UTF-8
felipe@SDF-1:~$ 

Я только что добрался до чего-то другого:

Я должен добавить тот факт, что у меня были те же проблемы, по-прежнему. Но затем я попробовал это, и это было исправлено:

Добавил его в

#~/.bashrc:

export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8

, а затем перезапустил демон SSH:

systemctl restart sshd
0
ответ дан 24 July 2021 в 06:06

Теги

Похожие вопросы