смена дефаултной локали

Установка, обновление, настройка Linux

Модераторы: Olej, adminn

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

смена дефаултной локали

Непрочитанное сообщение Olej » 27 дек 2019, 17:30

Вопрос состоит в том, что большинство хостеров, предоставляющих виртуальные VDS для WEB хостинга, устанавливают системы Linux с англоязычными локалями (по умолчанию, а зачастую и только такими).
Это относится и к хостингу этого форума на https://timeweb.com/ru/services/vds/.

Такая локаль неудобна при SSH подключению к серверу из рабочих Linux с локалью ru_RU.UTF-8 :

Код: Выделить всё

olej@ACER:~$ locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
Неудобна потому, что при наборе и забое символов не на том регистре начинают вылазить различия в 1-байтовых и 2-байтовых символов и их отображении... Ерунда получается.
Меняем...


Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: смена дефаултной локали

Непрочитанное сообщение Olej » 27 дек 2019, 17:44

Olej писал(а):
27 дек 2019, 17:30
Меняем...

Код: Выделить всё

root@277938:~# grep ru_RU.UTF-8 /etc/locale.gen
# ru_RU.UTF-8 UTF-8
Есть такая локаль в системе - по крайней мере, пакетной системой ничего доставлять не требуется...

Код: Выделить всё

root@277938:~# locale-gen ru_RU.UTF-8
Generating locales (this might take a while)...
  en_US.ISO-8859-1... done
Generation complete.

Код: Выделить всё

root@277938:~# locale -a
C
C.UTF-8
en_US
en_US.iso88591
POSIX
Не получилось... :evil:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: смена дефаултной локали

Непрочитанное сообщение Olej » 27 дек 2019, 17:47

Olej писал(а):
27 дек 2019, 17:44
Не получилось... :evil:
А дело в том, что нужную нам локаль (ru_RU.UTF-8) нужно раскомментировать в /etc/locale.gen:

Код: Выделить всё

root@277938:~# grep ru_RU.UTF-8 /etc/locale.gen
ru_RU.UTF-8 UTF-8

root@277938:~# locale-gen ru_RU.UTF-8
Generating locales (this might take a while)...
  ru_RU.UTF-8... done
  en_US.ISO-8859-1... done
Generation complete.
Вот теперь то что надо:

Код: Выделить всё

root@277938:~# locale -a
C
C.UTF-8
en_US
en_US.iso88591
POSIX
ru_RU.utf8

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: смена дефаултной локали

Непрочитанное сообщение Olej » 27 дек 2019, 17:55

Olej писал(а):
27 дек 2019, 17:47
Вот теперь то что надо:
Я хочу, если не ошибаюсь, сменить локаль не а). временно, и не б). при логине пользователя в bash, а перманентно сменить системную локаль.
Воспользуюсь таким (новым) способом:

Код: Выделить всё

root@277938:~# which localectl
/usr/bin/localectl

root@277938:~# localectl set-locale LANG=ru_RU.UTF-8
Смотрим:

Код: Выделить всё

root@277938:~# locale
LANG=en_US
LANGUAGE=
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
Естественно...
Потому что требуется перезагрузка системы.
Но подготовка локали сделана, чтобы не править это руками:

Код: Выделить всё

root@277938:~# cat /etc/default/locale
LANG=ru_RU.UTF-8
Перезагрузка...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: смена дефаултной локали

Непрочитанное сообщение Olej » 27 дек 2019, 17:59

Olej писал(а):
27 дек 2019, 17:55
Перезагрузка...

Код: Выделить всё

root@277938:~# Connection to 185.178.47.95 closed by remote host.
Connection to 185.178.47.95 closed.
...
olej@ACER:~/2019_WORK/own.WORK/rus.linux.net.admin/timeweb$ ./server_connect 
Linux 277938.local 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Fri Dec 27 16:59:06 2019 from 193.28.177.119
...

Код: Выделить всё

root@277938:~# locale
LANG=ru_RU.UTF-8
LANGUAGE=
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
Вот теперь то что надо!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

смена дефаултной локали

Непрочитанное сообщение Olej » 14 сен 2023, 19:31

Olej писал(а):
27 дек 2019, 17:30
Ерунда получается
После установки Manjaro 23 (возможно, после обновлений) у него вообще чудеса с локалями - Manjaro Linux
Olej писал(а):
14 сен 2023, 19:10
[olej@manjaro ~]$ locale

Код: Выделить всё

LANG=ru_UA.UTF-8
LC_CTYPE="ru_UA.UTF-8"
LC_NUMERIC=uk_UA.UTF-8
LC_TIME=uk_UA.UTF-8
LC_COLLATE="ru_UA.UTF-8"
LC_MONETARY=uk_UA.UTF-8
LC_MESSAGES="ru_UA.UTF-8"
LC_PAPER=uk_UA.UTF-8
LC_NAME=uk_UA.UTF-8
LC_ADDRESS=uk_UA.UTF-8
LC_TELEPHONE=uk_UA.UTF-8
LC_MEASUREMENT=uk_UA.UTF-8
LC_IDENTIFICATION=uk_UA.UTF-8
LC_ALL=
Кто такой uk_UA.UTF-8 вообще?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

смена дефаултной локали

Непрочитанное сообщение Olej » 15 сен 2023, 00:41

Olej писал(а):
14 сен 2023, 19:31
Кто такой uk_UA.UTF-8 вообще?
То, как переопределялись дефаултные локали в Manjaro 23 подробно конспектировано здесь - Manjaro Linux
Было:

Код: Выделить всё

[olej@manjaro ~]$ localectl status
System Locale: LANG=ru_UA.UTF-8
               LC_NUMERIC=uk_UA.UTF-8
               LC_TIME=uk_UA.UTF-8
               LC_MONETARY=uk_UA.UTF-8
               LC_PAPER=uk_UA.UTF-8
               LC_NAME=uk_UA.UTF-8
               LC_ADDRESS=uk_UA.UTF-8
               LC_TELEPHONE=uk_UA.UTF-8
               LC_MEASUREMENT=uk_UA.UTF-8
               LC_IDENTIFICATION=uk_UA.UTF-8
    VC Keymap: ru
   X11 Layout: us,ru
  X11 Options: grp:alt_shift_toggle
Стало:

Код: Выделить всё

[olej@manjaro ~]$ localectl status
System Locale: LANG=ru_UA.UTF-8
    VC Keymap: ru
   X11 Layout: us,ru
  X11 Options: grp:alt_shift_toggle
И опять та же история:
Olej писал(а):
27 дек 2019, 17:55
Потому что требуется перезагрузка системы.
Подготовленная смена локали происходит только после перзагрузки системы :!:

Ответить

Вернуться в «Администрирование Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя