Показаны сообщения с ярлыком ru. Показать все сообщения
Показаны сообщения с ярлыком ru. Показать все сообщения

UTF-8 и man

Если локаль консоли установлена в ru_RU.UTF-8, весьма вероятны проблемы с man'ом - страницы на русском выводятся некорретно, ровно как и диагностические сообщения man'а.

С помощью Wiki Archlinux'а (ссылку запамятовал, но, думаю, Google поможет) я решил эти проблемы следующим образом:

  1. Скачиваем исходники man отсюда (текущая версия 1.6f)

  2. Патчим, компилируем и устанавливаем man:

    tar xzf man-1.6f.tar.gz
    cd man-1.6f
    iconv -f koi8-r -t utf-8 msgs/mess.ru \
    > /tmp/mess.ru
    mv /tmp/mess.ru ./msgs/
    echo "$ codeset=UTF-8" > msgs/mess.ru.codeset
    ./configure +lang en,ru -confdir /usr/lib \
    +fhs --prefix=/usr
    make
    su -c 'make install'
    cd ..
    rm -Rf man-1.6f

  3. В "/usr/lib/man.conf" заменить:

    NROFF /usr/bin/nroff -Tlatin1 -mandoc

    на

    NROFF iconv -f utf8 -t koi8r | /usr/bin/nroff -Tlatin1 -mandoc -c | iconv -f koi8r -t utf8


После всех манипуляций man в моей Slackware 12.1 заработал как надо, чего и вам желаю :-)

UTF-8 и консоль Slackware

Ядро

Убедитесь, что опции:
  • "File systems/Native language support" - установлена в "*"

  • "File systems/Native language support/Default NLS Option" - "utf8"

  • "File systems/Native language support/NLS UTF-8" - "*"

Начало

CTRL-ALT-F1

Войдите в систему как root. Сделайте (чтобы "убить" X'ы на всякий случай):

init 3

keymap

Установим keymap-файл:

  1. Отсюда загрузите файл с keymap

  2. Поместите этот файл в "/usr/share/kbd/keymaps/i386/qwerty"

  3. Создайте файл "/etc/rc.d/rc.keymap" следующего содержания:
    #!/bin/sh
    # Load the keyboard map. More maps are in /usr/share/kbd/keymaps.
    if [ -x /bin/loadkeys ] ; then
         kbd_mode -u
         /bin/loadkeys ru-winkeys-uni_ct_sh.kmap
         for n in 1 2 3 4 5 6; do
             echo -n -e '\033%G' > /dev/tty$n
         done
    fi

  4. Права доступа к "/etc/rc.d/rc.keymap" установите в 755

lang

Теперь необходимо правильно настроить переменные среды, содержащие информацию о локали:

  1. Создайте файл "/etc/profile.d/lang.sh" следующего содержания:
    #!/bin/sh
    # Set the system locale (default C is the same as en_US):
    export LANG="ru_RU.UTF-8"
    export LC_ALL="ru_RU.UTF-8"

  2. Права доступа к "/etc/profile.d/lang.sh" установите в 755

font

Наконец, настроим консольный шрифт для ru_RU.UTF-8:

  1. Создайте файл "/etc/rc.d/rc.font" следующего содержания:
    #!/bin/sh
    setfont cyr-sun16.psfu

  2. Создайте файл "/etc/profile.d/font.sh" следующего содержания:
    #!/bin/bash
    if [ "` tty | grep pts `" == "" ]
    then
         setfont cyr-sun16.psfu
    fi

  3. Поставьте права доступа 755 на оба файла

Перезагрузка

По окончании вы получите консоль ru_RU.UTF-8, с переключением на русский по CTRL-SHIFT.