Продолжая своё знакомство с FreeBSD, я обнаружил что система по-умолчанию совершенно не дружит с UTF-8. Так как система будет использоваться для веб-сайтов, то присутствие кодировки UTF-8 просто необходимо. Да и не хочется коллекционировать кодировки, ведь я пользуюсь разными системами.
В интернете много статей, но мне помогла родная документация www.freebsd.org/doc
Правим файл /etc/login.conf:
russian|Russian Users Accounts:\ :charset=UTF-8:\ :lang=ru_RU.UTF-8:\ :tc=default:
login.conf — это база данных описывающая классы пользователей ОС. Если точнее, то это текстовый файл описывающий конфигурацию базы данных /etc/login.conf.db. Для применения изменений в login.conf.db необходимо после правки файла login.conf воспользоваться программой cap_mkdb:
cap_mkdb /etc/login.conf
Изменяем данные пользователя root, применяем к нему класс russian
pw usermod -n root -L russian
На этом всё. Хотелось бы отметить, что этот способ не затрагивает системную консоль и применим только в юзерском шеле.
Чтобы подействовало и на системную консоль, идём дальше:
В файле /etc/ttys для каждого имени терминала ttyv0-ttyv7, указать тип cons25r, например:
ttyv0 "/usr/libexec/getty Pc" cons25r on secure ttyv1 "/usr/libexec/getty Pc" cons25r on secure ttyv2 "/usr/libexec/getty Pc" cons25r on secure ttyv3 "/usr/libexec/getty Pc" cons25r on secure ttyv4 "/usr/libexec/getty Pc" cons25r on secure ttyv5 "/usr/libexec/getty Pc" cons25r on secure ttyv6 "/usr/libexec/getty Pc" cons25r on secure ttyv7 "/usr/libexec/getty Pc" cons25r on secure
В файл /etc/rc.conf добавить строки:
font8x8="koi8-r-8x8" font8x14="koi8-r-8x14" font8x16="koi8-r-8x16" keymap="ru.koi8-r.win" mousechar_start="3"
Теперь нужно выполнить перезагрузку. Русский язык должен поддерживаться. Переключение языков осуществляется комбинацией клавиш Ctrl+Shift.
Если вы используете другой шелл:
/etc/csh.cshrc
setenv LANG ru_RU.UTF-8 setenv LC_CTYPE ru_RU.UTF-8 setenv LC_COLLATE POSIX setenv LC_ALL ru_RU.UTF-8
/etc/profile (bash)
LANG="ru_RU.UTF-8"; export LANG LC_CTYPE="ru_RU.UTF-8"; export LC_CTYPE LC_COLLATE="POSIX"; export LC_COLLATE LC_ALL="ru_RU.UTF-8"; export LC_ALL
/root/.cshrc (руту русификации не положены)
setenv LANG C setenv LC_CTYPE C setenv LC_COLLATE POSIX setenv LC_ALL C
в 9ке «В файле /etc/ttys» у меня так:
<code>
grep ttyv /etc/ttys
#ttyv0″/usr/libexec/getty Pc»xtermon secure
ttyv1″/usr/libexec/getty Pc»xtermon secure
ttyv2″/usr/libexec/getty Pc»xtermon secure
ttyv3″/usr/libexec/getty Pc»xtermon secure
ttyv4″/usr/libexec/getty Pc»xtermon secure
ttyv5″/usr/libexec/getty Pc»xtermon secure
ttyv6″/usr/libexec/getty Pc»xtermon secure
ttyv7″/usr/libexec/getty Pc»xtermon secure
ttyv8″/usr/local/bin/xdm -nodaemon»xtermoff secure
</code>
Настраиваем локаль:
# sysinstall
Configure -> Console ->
2 Font -> 5 IBM 866 Russian, IBM encoding
3 Keymap-> Russia KOI8-R Russian KOI8-R keymap
4 Repeat-> Fast Fast keyboard repeat rate
5 Saver -> 1 Blank Simply blank the screen
6 Screenmap-> 5 KOI8-R to IBM866 Russian KOI8-R to IBM 866
7 Ttys -> 6 KOI8-R cons25r
X Exit -> OK
Time Zone -> NO -> 8 Europe -> 38 Russian Federation -> 2 Moscow+00 — west Russia -> YES
X Exit -> [X Exit Install]
# pw usermod root -L russian
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/lang-setup.html
21.5.1.1. Настройка локализации
Поместите в ~/.login_conf следующие строки:
me:My Account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:
Обратитесь к вышеизложенному материалу этой главы за соответствующей информацией.
21.5.1.2. Настройка консоли
Добавьте следующую строку в /etc/rc.conf:
mousechar_start=3
Кроме того, используйте в /etc/rc.conf такие настройки:
keymap=»ru.koi8-r»
scrnmap=»koi8-r2cp866″
font8x16=»cp866b-8×16″
font8x14=»cp866-8×14″
font8x8=»cp866-8×8″
Для каждого устройства ttyv* в файле /etc/ttys, используйте cons25r в качестве типа терминала.
Обратитесь к вышеизложенному материалу этой главы за примерами настройки консоли.
http://5level.org/article.php/russification-freebsd-console-koi8r-utf8
Настройка KOI8-R:
vi /etc/rc.conf
keymap=»ru.koi8-r»
font8x8=»cp866-8×8″
font8x14=»cp866-8×14″
font8x16=»cp866b-8×16″
scrnmap=»koi8-r2cp866″
cursor=»destructive»
Заменить все cons25 на cons25r в /etc/ttys:
vi /etc/ttys
:%s/cons25/cons25r/g
kill -HUP 1
(чтобы перечитался /etc/ttys)
/etc/rc.d/syscons restart
pw usermod root -L russian
(выполнить для всех имен пользователей кому нужен русский, если вы ходите на сервер только удаленно по ssh/telnet, то можно выполнить только этот шаг для настройки поддержки русского языка KOI8-R в системе)
Настройка UTF-8 (для работы с удаленного терминала):
В /etc/login.conf добавляем:
russian-utf8|Russian Users Accounts:
:charset=UTF-8:
:lang=ru_RU.UTF-8:
:lc_all=ru_RU.UTF-8:
:tc=default:
Перестраиваем БД:
cap_mkdb /etc/login.conf
Прикрепляем пользователя:
pw usermod логин -L russian-utf8
Добавляем в /etc/profile
MM_CHARSET=UTF-8; export MM_CHARSET
http://adminlog.ru/?p=812
setenv LANG ru_RU.UTF-8
setenv LC_ALL ru_RU.UTF-8