HOWTO ru RU.utf8 Gentoo way

Материал из Википедии - свободной энциклопедии.

Вернутся в раздел руководства


Содержание

Основы

USE Flags

File: /etc/make.conf

...
USE=".... nls unicode...."
...


Конфигурация ядра

  • ядро ветки 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


Шрифты

Установленные дополнительные шрифты:

Может лучше написать список команд... я как дурак с оверлеями возился... а это стандартные пакеты! всего то надо:

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-Терминалы которые уже поддерживают юникод:

Что надо пересобрать

Нужно пересобрать приложения до:

  • ncurses версии 5.4-r5 и выше
  • slang версии 1.4.9-r1 и выше
  • mc версии 4.6.0-r11 и выше

следующим образом


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



Посоветовать или Спросить,
Пожаловатся или Поблагодарить
можно на странице обсуждений.

Личные инструменты
advertisement