HOWTO ru RU.utf8 Gentoo way
Материал из Википедии - свободной энциклопедии.
- Вернутся в раздел руководства
Содержание |
Основы
USE Flags
File: /etc/make.conf |
... |
Конфигурация ядра
- ядро ветки 2.6.* желательно, но работает и на 2.4.*
Для автоматического выбора юникодовой страницы кодов для файловых систем надо включить Default NLS как UTF8
- Включить поддержку юникода в ядре
File Systems --> Native Language Support --> NLS UTF8 File Systems --> Native Language Support --> (UTF8) Default NLS Option
Так же незабудьте включить в ядро поддержку cp1251,koi8-r,cp866
- Собрать/Пересобрать ядро
Теперь вам не придется в /etc/fstab указывать параметр iocharset=utf-8 Если вы этого не сделали , то для сменных носителей и разделов Microsoft© Windows™ надо указывать
File: /etc/fstab |
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 user,noauto,ro,iocharset=utf8,codepage=866 0 0 |
А можно и проще, например так:
File: /etc/fstab |
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro,unhide,utf8,user 0 0 /dev/fd0 /mnt/floppy vfat user,noauto,utf8 0 0 |
Шрифты
Установленные дополнительные шрифты:
- terminus-font
- intlfonts
- freefonts
- cronyx-fonts
- corefonts
- artwiz-fonts Сергей сделал добавку к artwiz (http://dev.gentoo.org/~sergey/artwiz.html)
Может лучше написать список команд... я как дурак с оверлеями возился... а это стандартные пакеты! всего то надо:
- emerge terminus-font intlfonts freefonts cronyx-fonts corefonts artwiz-fonts
Создание локали
Для создания локaли командой localedef вам потребуются права root'а.
- localedef --no-archive -c -i ru_RU -f UTF-8 ru_RU
Обратите внимание на опцию --no-archive она указывает на то, что локаль не надо упаковывать в архив. Если вы забудете указать эту опцию, то после обновления библиотеки glibc вам придется повторить этот шаг снова.
Последние полгода glibc собирается с ru_RU.UTF-8 уже "из коробки". Так что сначала проверьте, может у вас уже всё есть
- locale -a | grep ru
Установка локали
Надо в файле /etc/env.d/02locale прописать две строки
File: /etc/env.d/02locale |
LC_ALL="" LANG=ru_RU.UTF-8 |
Однако предпочтительней это делать в файлах пользователя, например ~/.bash_profile
- Не устанавливайте переменную LESSCHARSET равной UTF-8! Это приведет к неработоспособности как самой программы less так и связанных с ней, таких как man.
Чтобы это изменение вступило в силу немедленно выполните
- env-update
В первую очередь нам надо изменить несколько файлов запуска системы. Это можно сделать с правами рута, наложив небольшой патч (http://dev.gentoo.org/~sergey/baselayout_utf.patch). Он добавит две новые опции в rc.conf: KEYMAP_ENCODING и UTF8.
- $ patch -p0 < baselayout_utf.patch
Если у вас baselayout версии 1.11.4 и более, то ничего патчить не надо (почти).
В файле /etc/rc.conf надо прописать
File: /etc/rc.conf |
KEYMAP="-u ru4" CONSOLEFONT="ter-k14n" UNICODE="yes" |
И еще надо подредактировать /etc/init.d/keymaps
строку
- dumpkeys | loadkeys --unicode заменить на
- dumpkeys -c koi8-r | loadkeys --unicode
дополнительно про варианты раскладки клавиатуры почитайте здесь
В случае baselayout версии 1.11.7 и старше ручками трогать /etc/init.d/keymaps больше не надо, а надо править следующие конфиги:
File: /etc/rc.conf |
CONSOLEFONT="ter-k14n" UNICODE="yes" |
File: /etc/conf.d/keymaps |
KEYMAP="-u ru4" SET_WINDOWKEYS="yes" # Опционально DUMPKEYS_CHARSET="koi8-r" |
Заключительным аккордом дожен стать перезапуск сервисов keymaps и consolefont.
- /etc/init.d/keymaps restart
- /etc/init.d/consolefont restart
Теперь у вас должна быть локаль ru_RU.UTF-8
- locale
LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=
Приложения
X-Терминалы которые уже поддерживают юникод:
- xterm
- uxterm (это тот же xterm с авто-параметром "-u8")
- rxvt-unicode
- mlterm
Что надо пересобрать
Нужно пересобрать приложения до:
следующим образом
- export USE="unicode"
- emerge =sys-libs/ncurses
- emerge =sys-libs/slang
- export USE="slang unicode -ncurses"
- emerge =app-misc/mc
Примечание
В новых версиях portage (>=2.0.51) появился параметр --newuse. Он служит для пересборки пакетов с обновленными значениями USE-флагов. То есть вместо обновления каждого пакета можно выполнить следующее:
- emerge --newuse -u world
Настройка gtk+ первой версии
Еще остается проблема с gtk+. Дело в том, что по умолчинию в настройках gtk+ не включена поддержка многобайтных шрифтов, поэтому надо в своем файле ~/.gtkrc кое что изменить, а именно прописать нужный шрифт:
File: ~/.gtkrc |
style "user-font" { fontset="-monotype-arial-medium-r-normal-*-*-130-*-*-p-*-iso10646-1" } widget_class "*" style "user-font" |
Если у вас уже прописан ваш шрифт, то вам требуется заменить font на fontset
font -> fontset
Несколько советов
Для удаления тормознутости fluxbox:
File: flux-utf8-slow.patch |
diff -ur fluxbox-0.9.11.orig/src/FbTk/Font.cc fluxbox-0.9.11/src/FbTk/Font.cc --- fluxbox-0.9.11.orig/src/FbTk/Font.cc 2004-11-19 14:01:39.000000000 +0200 +++ fluxbox-0.9.11/src/FbTk/Font.cc 2004-12-24 19:19:46.015735856 +0200 @@ -293,7 +293,7 @@ // create the right font implementation // antialias is prio 1 #ifdef USE_XFT - if (antialias) { + if (antialias || m_utf8mode) { m_fontimp.reset(new XftFontImp(0, m_utf8mode)); } #endif //USE_XFT |
Собираем mplayer так:
- cd /usr/portage/media-video/mplayer/
- ebuild mplayer-1.0_pre6.ebuild unpack
- iconv -f koi8-r /var/tmp/portage/mplayer-1.0_pre6/work/MPlayer-1.0pre6a/help/help_mp-ru.h > /tmp/mp
- mv /tmp/mp /var/tmp/portage/mplayer-1.0_pre6/work/MPlayer-1.0pre6a/help/help_mp-ru.h
- ebuild mplayer-1.0_pre6.ebuild merge
Дополнительная Информация
- Сергей сообразил unicode-guide (http://dev.gentoo.org/~sergey/unicode-guide.html)
- Начало дискусии (http://forums.gentoo.org/viewtopic.php?t=158335)
- Baldin Cyrillic HOWTO (http://www.inp.nsk.su/~baldin/)
- Cyrillic in Unicode (http://www-106.ibm.com/developerworks/unicode/library/l-u-cyr/?dwzone) статья на ibm сайте
- [1] (http://www.linuxshop.ru/forum/viewtopic.php?p=22633#22633) kilofile have a clue
Посоветовать или Спросить, |