slackware.ru
http://www.slackware.ru/forum/

Slackware 14: квадратики вместо кириллицы в консоли
http://www.slackware.ru/forum/viewtopic.php?f=8&t=1063
Страница 2 из 3

Автор:  bormant [ 20 ноя 2013 10:23 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Вот про этот и аналогичные вольные пересказы:
malor писал(а):
# grep -v "^$\|^#" /etc/profile.d/lang.sh
Цитата:
#!/bin/sh
# Set the system locale. (no, we don't have a menu for this ;-)
# For a list of locales which are supported by this machine, type:
# locale -a

# en_US is the Slackware default locale:
export LANG=ru_RU.UTF-8

# 'C' is the old Slackware (and UNIX) default, which is 127-bit
# ASCII with a charmap setting of ANSI_X3.4-1968. These days,
# it's better to use en_US or another modern $LANG setting to
# support extended character sets.
#export LANG=C

# There is also support for UTF-8 locales, but be aware that
# some programs are not yet able to handle UTF-8 and will fail to
# run properly. In those cases, you can set LANG=C before
# starting them. Still, I'd avoid UTF unless you actually need it.
#export LANG=en_US.UTF-8

# Another option for en_US:
#export LANG=en_US.ISO8859-1

# One side effect of the newer locales is that the sort order
# is no longer according to ASCII values, so the sort order will
# change in many places. Since this isn't usually expected and
# can break scripts, we'll stick with traditional ASCII sorting.
# If you'd prefer the sort algorithm that goes with your $LANG
# setting, comment this out.
export LC_COLLATE=C

# End of /etc/profile.d/lang.sh

Почему вольные пересказы? Потому что приведён не вывод команды, а что-то ещё, вам виднее, что именно.
Перечитайте: viewtopic.php?p=7627#p7627
В любом случае, прежде всего смотреть сюда: viewtopic.php?p=7628#p7628, корень проблемы в LANG=en_US вместо ru_RU.UTF-8 (или en_US.UTF-8).

Автор:  Graf [ 20 ноя 2013 12:29 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

2malor:
Команда grep -v "^$\|^#" /etc/profile.d/lang.sh говорит приблизительно так:
Показать все строки из файла /etc/profile.d/lang.sh которые не содержат вначале символов "$" и "#".

Твой же вывод этой команды говорит о том, что ты скинул из какого-то редактора или еще как-то, всё содержимое этого файла (или вообще, не пойми, какого). О чем bormant тебе и говорит. Т.е., если тебе дают пример команд, то дай нам вывод именно ЭТИХ команд.

Автор:  malor [ 20 ноя 2013 20:55 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

А, вот в чём дело... То, что я представил в своём посте, было содержимое файлов созданных по такой схеме:

#locale > locale.txt

и т.д. у каждой команды из списка bormant-а образовался свой txt-файлик. Содержимое которых
я затем и перебросил в пост.

Такое перенаправление вывода сыграло злую шутку в случае применения команды grep ?

Автор:  bormant [ 20 ноя 2013 22:54 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

malor,
Если после изменений файлов была перезагрузка, то "Не верю." (q) Станиславский
Я не знаю почему у вас получается то, чего получаться не должно и не может.
Проблема в том, что этой информации нельзя доверять, она никак не отражает реальное положение дел на машине.

Единственное, что можно достоверно утверждать, на момент проведения всех этих проверок консоль является юникодной (UTF-8), а переменная окружения LANG содержит en_US, вместо en_US.UTF-8 или ru_RU.UTF-8, или любой другой с кодировкой UTF-8.
Такое могло было бы быть, если после внесения правок не было перезагрузки (файлы rc.* выполняются при загрузке) и/или релогина (файлы /etc/profile.d/* выполняются при входе пользователя). Либо в иных файлах, исполняемых при логине пользователя, есть команда
export LANG=en_US
или
LANG=en_US
export LANG
или что-то подобное.

Автор:  amirjahn [ 06 дек 2013 11:49 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

bormant писал(а):
То есть чеклист простой:
1) В выводе
cat /proc/cmdline
должны видеть "vt.default_utf8=1". Если нет, дописываем в /etc/lilo.conf в строку append, выполняем lilo от root, проверяем, что не было ошибок.

Столкнулся с такой же проблемой.
При выводе cat /proc/cmdline получаю vt.default_utf8=0. В /etc/lilo.conf прописана строчка append=" vt.default_utf8=1".
Настройки произвожу в учетной записи root. При запуске команды lilo, получаю следующее.
Warning: LBA addressing assumed
Fatal: open /boot/slack.bmp: No such file or directory

Автор:  bormant [ 06 дек 2013 13:50 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Цитата:
Fatal: open /boot/slack.bmp: No such file or directory
Это означает, что
1) загрузчик в бутсекторе не обновился и изменённые параметры не применены,
2) причиной является ошибка: в /etc/lilo.conf указано выводит картинку /boot/slack.bmp, но такого файла нет на месте. Кстати, проверьте:
Код:
# ls -l /boot/slack.bmp
Путей исправления два: а) положить файл на место или б) убрать ссылку на него из /etc/lilo.conf. slack.bmp приходит из пакета a/lilo, можно переустановить этот пакет. А он установлен?
Код:
# ls /var/log/packages/lilo-*
Если да, то
- если настроен slackpkg:
Код:
# slackpkg reinstall lilo
- иначе при помощи
Код:
# upgradepkg --install-new --reinstall /путь/до/пакета/lilo-*t?x
с диска или, возможно, предварительно загрузив его с одного из зеркал.

Автор:  amirjahn [ 11 дек 2013 10:25 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Загрузчик починили вместе с bormant вот тут viewtopic.php?f=8&t=1081&p=7795#p7795
По поводу кракозябров. Оказывается, после того, как поменяешь строку append=" vt.default_utf8=1", и запустишь
Код:
#lilo
нужно перезагрузиться, тогда вывод будет правильным
Код:
root@slackware:/# cat /proc/cmdline
auto BOOT_IMAGE=Linux ro root=802 vt.default_utf8=1

Кракозябры пропали.

Спасибо!

Автор:  amirjahn [ 11 дек 2013 10:32 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Теперь вопрос, зачем русифицировать консоль? Мне не очень нравится, что сообщения выскакивают на русском. Я так понимаю, что набор имен файлов можно решить и без русификации консоли?

Автор:  bormant [ 11 дек 2013 14:08 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Я предпочитаю вот такой вариант в /etc/profile.d/lang.sh (всё остальное отсутствует/закомментировано):
Код:
if [ "$(id -u)" == "0" ]; then
    export LANG=en_US.utf8
    export LC_COLLATE=C
else
    export LANG=ru_RU.utf8
fi
Вообще говоря, локаль (местные особенности) состоит из нескольких параметров, например, за язык сообщений отвечает LC_MESSAGES. Переменная LANG позволяет задать умолчание для тех, что не определены явно, а переменная LC_ALL -- принудительно переопределить все.

Автор:  amirjahn [ 12 дек 2013 12:07 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

То что нужно!

Автор:  sfh [ 16 июн 2014 11:23 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Для общего сведения любителей "квдаратиков". :)

У слаки дефолтных билда 2: x86 и x86_64.
Соответственно у системы x64 будет 2 man.conf
В /usr/lib/man.conf и /usr/lib64/man.conf

Если у вас система х64 то править нужно /usr/lib64/man.conf
добавив
Код:
NROFF           /usr/bin/groff -Dutf8 -Tutf8 -mandoc

для корректного отображения русских страниц помощи.

Автор:  bormant [ 16 июн 2014 11:44 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Цитата:
у системы x64 будет 2 man.conf
В /usr/lib/man.conf и /usr/lib64/man.conf

Код:
$ grep -FR /man.conf.new /var/log/packages
/var/log/packages/man-1.6g-x86_64-1:usr/lib64/man.conf.new
Один, в /usr/lib64/. В мультибиблиотечной (multilib) системе -compat32 для man смысла также не имеет. Так что второму взяться неоткуда.

Автор:  ziperman2007 [ 07 авг 2014 00:04 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

/etc/profile.d/lang.sh ==>> export LANG=en_US на
export LANG=ru_RU.UTF-8

/etc/profile.d/lang.csh ==>> setenv LANG en_US на
setenv LANG ru_RU.UTF-8

вот и все что нужно для дорусификации.

Автор:  bormant [ 07 авг 2014 08:51 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Цитата:
вот и все что нужно для дорусификации

Всё да не всё. Если речь вести только об X-ах и полной установке -- этого хватит. Однако шрифт/раскладка в консоли сами по себе не появятся (если только для установки не использовался slint), man-ы на русском сами по себе правильно выводиться не начнут, если при установке было выбрано использовать неюникодную консоль, параметр ядра "vt.default_utf8=0" никуда не денется и консоль юникодной не станет.

Автор:  f0b [ 04 апр 2018 12:24 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Я вижу правильно настроенный русский шрифт отображения по выводу "абвг", неважно, что выше квадратики.
Отличие UniCyr_*, ter-*, LatArCyrHeb-* и некоторых других шрифтов в том, что они в себе содержат таблицу перекодировки, а для Cyr_a* её иногда нужно указывать принудительно, например:
Код:
# setfont -v Cyr_a8x16 -m cp866_to_uni

То есть чеклист простой:
1) В выводе
cat /proc/cmdline
должны видеть "vt.default_utf8=1". Если нет, дописываем в /etc/lilo.conf в строку append, выполняем lilo от root, проверяем, что не было ошибок.

2) Вывод ls -l /etc/profile.d/lang.sh должен подтверждать наличия атрибута x (eXecute).
В выводе
grep -v "^$\|^#" /etc/profile.d/lang.sh
должны видеть последней строкой из имеющихся export LANG=
export LANG=ru_RU.UTF-8

Должны видеть ru_RU.UTF-8 в выводе
echo $LANG

В выводе
locale
должны видеть локаль ru_RU.UTF-8 и не должны видеть сообщений об ошибках.

3) Вывод ls -l /etc/rc.d/rc.font должен подтверждать наличия атрибута x (eXecute).
В выводе
grep -v "^$\|^#" /etc/rc.d/rc.font
должна присутствовать установка шрифта, вроде
setfont -v Cyr_a8x16 -m cp866_to_uni
или
setfont -v UniCyr_8x16
или
setfont -v ter-k16b
или что-то подобное. Cyr_a8x16 лично мне не нравится по причине отсутствия в нём глифов для букв "Ёё". Хотя, это очень легко поправить. Если нужно, расскажу ;-)


4) Вывод ls -l /etc/rc.d/rc.keymap должен подтверждать наличия атрибута x (eXecute).
В выводе
grep -v "^$\|^#" /etc/rc.d/rc.keymap
должна присутствовать установка раскладки клавиатуры, вроде
loadkeys ruwin_cplk-UTF-8


Слетела локаль. Куда бы копнуть?
Код:
bash-4.3$ cat /proc/cmdline
BOOT_IMAGE=Linux ro root=801 vt.default_utf8=1
bash-4.3$
bash-4.3$
bash-4.3$
bash-4.3$ ls -l /etc/profile.d/lang.sh
-rwxr-xr-x 1 root root 1360 Apr  4 13:15 /etc/profile.d/lang.sh
bash-4.3$
bash-4.3$
bash-4.3$
bash-4.3$ grep -v "^$\|^#" /etc/profile.d/lang.sh
export LANG=ru_RU.UTF-8
export LC_COLLATE=C
bash-4.3$
bash-4.3$
bash-4.3$
bash-4.3$ echo $LANG
ru_RU.UTF-8
bash-4.3$
bash-4.3$
bash-4.3$
bash-4.3$ locale
locale: �������������������� �������������������� LC_ALL �� ������������ ���� �����������������: ������ ������������ ���������� ������ ����������������
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE=C
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=
bash-4.3$
bash-4.3$
bash-4.3$
bash-4.3$ ls -l /etc/rc.d/rc.font
-rwxr-xr-x 1 root root 137 Sep  8  2017 /etc/rc.d/rc.font
bash-4.3$
bash-4.3$
bash-4.3$
bash-4.3$ grep -v "^$\|^#" /etc/rc.d/rc.font
setfont -v cyr-sun16.psfu.gz
bash-4.3$
bash-4.3$
bash-4.3$
bash-4.3$ ls -l /etc/rc.d/rc.keymap
-rwxr-x--x 1 f0b users 158 Jun 16  2015 /etc/rc.d/rc.keymap
bash-4.3$
bash-4.3$
bash-4.3$
bash-4.3$ grep -v "^$\|^#" /etc/rc.d/rc.keymap
if [ -x /usr/bin/loadkeys ]; then
 /usr/bin/loadkeys ruwin_ct_sh-UTF-8.map.gz
fi

Автор:  bormant [ 04 апр 2018 16:46 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Это совсем из другой оперы.
Цитата -- про консоль.
Картинка -- графический терминал.
rc.font -- шрифт в консоли, rc.keymap -- раскладка в консоли.

А вот локаль (LANG и LC_*) -- общая. И с ней что-то не так. Было бы интересно прочитать предупреждение от locale. Оно его при
LANG=en_US.UTF-8 locale
не выдает?

Пакет glibc-i18n на месте? В настройках терминала ереси никакой нет? С иксовыми шрифтами все в порядке?

Что делали незадолго до того, как поломалось?

Автор:  f0b [ 04 апр 2018 18:17 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

bormant писал(а):
А вот локаль (LANG и LC_*) -- общая. И с ней что-то не так. Было бы интересно прочитать предупреждение от locale. Оно его при
LANG=en_US.UTF-8 locale
не выдает?

Выдает:
Код:
bash-4.3$ LANG=en_US.UTF-8 locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=C
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=


bormant писал(а):
Пакет glibc-i18n на месте?

Ага:
Код:
bash-4.3# slackpkg search glibc-i18n

Looking for glibc-i18n in package list. Please wait... DONE

The list below shows all packages with name matching "glibc-i18n".

[ installed ] - glibc-i18n-2.23-x86_64-4_slack14.2

You can search specific files using "slackpkg file-search file".


bormant писал(а):
В настройках терминала ереси никакой нет? С иксовыми шрифтами все в порядке?

Никакой ереси нет. Со шрифтами все в порядке.

bormant писал(а):
Что делали незадолго до того, как поломалось?

Поломка произошла после удаления multilib.

Автор:  bormant [ 04 апр 2018 18:53 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Хм, надо подумать, первый раз вижу именно такое в единичном экземпляре, без LC_CTYPE и LC_MESSAGES:
Код:
locale: Cannot set LC_ALL to default locale: No such file or directory
Обычно такой ответ либо на первые 3 строчки, либо нет вовсе.
Нет ли в выводе "declare" LC_ALL, если есть, с каким значением? Эта переменная окружения позволяет насильно перекрыть все остальные LC_*, ситуация, когда она пустая (не установлена) -- обычное дело. Не могло туда попасть что-то пробельное или иное какое непотребное?

Как именно происходило удаление multilib-а?


PS. Можно попробовать пересобрать локаль:
# localedef ru_RU.UTF-8 -i ru_RU -f UTF-8

Но ведь и с en_US.UTF-8 та же самая ерунда...

Мы про 14.2 или current? (multilib -- 64 бита, тут сомнений нет ;) )


PPS.
# slackpkg reinstall glibc-i18n
и релогин ничего не дает?

Автор:  bormant [ 04 апр 2018 20:37 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

Можно еще глянуть на выхлоп
$ strace locale

Автор:  f0b [ 04 апр 2018 20:56 ]
Заголовок сообщения:  Re: Slackware 14: квадратики вместо кириллицы в консоли

bormant писал(а):
Нет ли в выводе "declare" LC_ALL, если есть, с каким значением?

LC_ALL отсутствует.

bormant писал(а):
Как именно происходило удаление multilib-а?

Код:
bash-4.3# slackpkg remove multilib
slackpkg remove slackpkg+

bormant писал(а):
Мы про 14.2 или current?

14.2... стабильность наше все ))
bormant писал(а):
PPS.
# slackpkg reinstall glibc-i18n
и релогин ничего не дает?

Даже не шевельнулься. )))
bormant писал(а):
Можно еще глянуть на выхлоп
$ strace locale

выхлоп каэш концентрированный, но что в нем искать?

Страница 2 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/