Локализация 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
|