www.lissyara.su —> статьи —> FreeBSD —> настройка —> CP1251 на FreeBSD 

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

Автор: northern.


Содержание.
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 LANGLC_ALL=ru_RU.CP1251; export LC_ALLMM_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

 

© ibuntu

Сделать бесплатный сайт с uCoz