Среда, 13.08.2025, 04:44

Блог Владимира Степанова

Реклама
Статистика
Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Меню
Категории раздела
FreeBSD OpenBSD [1]
Установка [4]
Настройка [21]
WWW [1]
Мелочи [1]
Файловая система [0]
Вход на сайт
Реклама
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Unix системы » Мелочи

    Локализация FreeBSD на CP1251.

    Локализация FreeBSD на CP1251.


    Содержание.
    1. Использование locale KOI8-R.
    2. Использование locale CP1251 вместо KOI8-R.
    3. Монтирование разделов ntfs и fat.


       Вскоре, после курса молодого бойца и успешного выживания  на совершенно новом  для меня плацдарме под названием FReeBSD, у меня возникла одна из задач по монтированию разделов windows во freebsd. Тоесть на одной машине стоит виндовс и фря, есть раздел fat 32 специально для обмена файлами между этими ОС.  Хотелось, чтобы текстовые документы, набранные в виндовсе, можно было смотреть и по возможности редактировать на фре и наоборот.
       Все опыты проводил на фре 6.1.

    1. Использование locale  KOI8-R
       Русификация, основанная на  KOI8-R, описана в  статье  у lissyar`ы, отмечу лишь, что для моей задачи этот способ не подошел, и я начал рыть в сторону кодировки cp1251.

    2. Использование locale CP1251 на консоли и виртуальных терминалах, вместо KOI8-R
       Локаль cp1251 поставляется в дистрибутиве фре. Находится она в папке  /usr/share/locale/ru_RU.CP1251. Для локализации в handbook`е  достаточно хорошо описывается два метода.
    Первый (рекомендуемый) заключается в задании переменных в классе логина, другой метод заключается в задании переменных окружения в инициализационном файле системной оболочки.
       Первый метод. Идём в /etc/login.conf, находим в нём:
    russian|Russian Users Accounts:\
    :charset=KOI8-R:\
    :lang=ru_RU.KOI8-R:\
    :tc=default:

    и добавляем новый класс:
    winrus|Russian Win Accounts:\
    :charset=CP1251:\
    :lang=ru_RU.CP1251:\
    :tc=default:

    Для сохранения внесённых изменений в бд делаем:
    northern# cap_mkdb /etc/login.conf

    Далее, утилитой vipw или pw (pw usermod user_name -L winrus) меняем имя класса пользователя, в моём случае russian меняем на winrus.
    Если глянуть утилитой vipw должно получиться следующее:
    было
     root:XXXXXXXXXX:0:0:russian:0:0:Charlie &:/root:/bin/csh

    стало
     root:XXXXXXXXXX:0:0:winrus:0:0:Charlie &:/root:/bin/csh

    В общем-то, новый класс можно и не добавлять, можно подправить старый (у меня russian).  
       Ворой метод. Добавляем:
    для Bourne-Shell / Bash в файл /etc/profile:
    LANG=ru_RU.CP1251; export LANG
    LC_ALL=ru_RU.CP1251; export LC_ALL
    MM_CHARSET=CP1251; export MM_CHARSET

    для Csh / Tcsh в файл /etc/csh.login:
    setenv LANG ru_RU.CP1251 
    setenv MM_CHARSET CP1251

    или делаем тоже самое у пользователя в /home, в .profile/.bash_profile (shell/bash), либо в .login (csh/tcsh).
    Для настройки консоли и виртуальных терминалов, необходимо иметь два файла:
       1. файл клавиатурной раскладки для кодировки cp1251 -  ru.cp1251.kbd. Качаем и кладем в  /usr/share/syscons/keymaps
       2. для отображения будем использовать cp866, для этого нужен файл таблицы перекодировки из cp1251 в cp866 - win2cpp866.scm. Качаем и кладем в /usr/share/syscons/scrnmaps.
    Редактируем  файл /etc/rc.conf:
    ... 
    keymap=ru.cp1251
    # можно не использовать, by default клавиша "CAPS LOCK"
    #keychange="61 ESC[K"
    scrnmap="win2cpp866"
    font8x16=cp866b-8x16
    font8x14=cp866-8x14
    font8x8=cp866-8x8
    ...


    Проверим и при необходимости поправим содержимое файла /etc/ttys. Он должен содержать похожие строки:
    ttyv0 "/usr/libexec/getty Pc" cons25r on secure 
    ...
    ttyv5 "/usr/libexec/getty Pc" cons25r on secure
    ...

    все cons25 на до исправить на cons25r.
    Перерегружаемся, смотрим результат.

    3. Теперь, для удобства, осталось подмонтировать разделы fat и ntfs. Приведу в пример мой файл fstab:

    # Device Mountpoint FStype Option Dump Pass#
    /dev/ad1s1b none swap sw 0 0
    /dev/ad1s1a / ufs rw 1 1
    /dev/ad1s1e /tmp ufs rw 2 2
    /dev/ad1s1f /usr ufs rw 2 2
    /dev/ad1s1d /var ufs rw 2 2
    /dev/acd0 /cdrom cd9660 ro,noauto 0 0

    #fat
    /dev/ad1s5 /mnt/ad1_dos5 msdos rw,-Lru_RU.CP1251 0 0
    #ntfs
    /dev/ad1s6 /mnt/ad1_ntfs3 ntfs ro,-Ccp1251 0 0
    #ntfs
    /dev/ad0s8 /mnt/ad0_ntfs ntfs ro,-Ccp1251 0 0
    #fat (флэшка)
    /dev/da0s1 /mnt/usb msdos rw,noauto,-Lru_RU.CP1251 0 0

    Хочу обратить внимание на синтаксис в fstab. Разделители полей в файле fstab пробелы и табуляции. Все опции, типа ro, noauto и специфических ключей должны быть перечислены в одном поле Options, конечно, без пробелов.
       Вот и всё. Цель достигнута.



    Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=5617.

    размещено: 2006-07-30,
    последнее обновление: 2007-06-09,
    автор: northern

    Категория: Мелочи | Добавил: Raxxell5059 (22.12.2010)
    Просмотров: 1315 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]