Документация по ОС FreeBSD Воскресенье, 19.05.2024, 02:10
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

Настраиваем русский Unicode в FreeBSD-5.3
Небольшое вступление.
На юникс-форумах происходит много споров на тему "А нужен ли юникод юникс-системам ?",но чёткого вывода эти споры так и недают.Сделаем простой вывод,что раз есть такая кодировка ,значит она кому то нужна . Я не буду рассматривать её достоинства или недостатки ,не буду склонять к тому чтобы срочно все переходили на utf,а просто поделюсь своим опытом перехода на unicode в системе FreeBSD.Опять же сразу оговорюсь что данная мной методика не является обязательной в исполнение каждого пункта статьи ,а с успехом может быть заменена на другие методы решения возникших вопросов .Если посмотреть на дистрибутивы Linux то там уже довольно удачно юникод применяеться в качестве основной кодировки дистрибутивов ,это такие как Suse,Red Hat/Fedora и некоторые другие.Остальные создатели дистрибутивов посматривают в эту сторону ,но пока не все спешат с переходом на юникод по умолчанию в системе ,хотя полная поддержка utf-локализации обеспеченна практически во всех линукс-дистрибуивах.До сей поры юникод как-то обходил стороной BSD-системы .Но прогресс так сказать не стоит на месте ,и в недавних релизах BSD-систем (FreeBSD,DragonFlyBSD ,NetBSD)появилась вобщем то полная поддержка utf-локализаций.Остановимься на самой популярной из них -FreeBSD (на даный момент версия 5.3),но я думаю тоже самое может быть и применено и в других BSD-системах .Поставим для себя такую цель : Работать во FreeBSD ,плюс чтоб была обеспеченна полная руссификация причём в юникоде.

Юникодная консоль и руссификация.
Вот тут мы наступаем на первые грабли .Для начала чтоб неморочить голову делаем руссификацию в точности как описанно в HandBook не больше и не меньше. А как же юникод ? Вот тут сразу придётся огорчить читателя ,что консоль FreeBSD пока не совсем готова к принятию юникода ,а для нормальной работы вам придёться использовать старый добрый koi8-r .Причин здесь несколько,но скажу лишь про одну из основных .Для для того чтобы реально попробовать юникод в консоли FreeBSD нужны мап-файлы (файлы кодировок ввода/вывода символов на консоль) .Просто посмотрим в каталоги /usr/share/syscons/scrmaps и /usr/share/syscons/keymaps и убедимся что файлы в кодировке юникод отсувствуют,длительные поиски в сети как мои ,так и заинтересовавшихся товарищей юникодных мап-файлов дали отрицательный результат,да и вобще если таковые и были бы ,то сама структура syscons вызывает сомнения с точки зрения пригодности к юникоду ,но это требует отдельных широких исследований.А как же тогда юникод ? Ответ:"X-Window -вот что нам нужно ". По простому называемые иксы давно готовы к принятию юникода .Собственно с ними и будем работать.Конечно разность кодировок в консоли и иксах может вызывать противоречивые чувства у многих (типа локаль должна быть едина) ,но как говориться и здесь можно найти свои преимущества.Cама локаль идёт во FreeBSD начиная с версии 5.2 ,но если вдруг неокажется увас по каким либо причинам то её можно установить из портов - /usr/ports/misc/utf8locale.

Настройка локали.
Оговорюсь сразу что у меня оболочка bash ,и всё ниженаписанное по настройкам применительно к ней ,но и с другими шеллами затруднений не должно возникнуть ,главное понять суть вопроса. Собственно раз мы будем работать с юникодом в иксах,то задаём переменные для рализации юникодной локали в домашнем каталоге ,в файле ~/.xinitrc ,в самых первых строках файла. Нужно задать соответствующие переменные,для чего привожу простой пример состава файла ~/.xinitrc:
 
export LANG='ru_RU.UTF-8'
export LC_ALL='ru_RU.UTF-8'
exec startfluxbox

Конечно fluxbox может быть заменён на другой менеджер .Мне по почте отписали что что переменную LC_ALL следует делать LC_ALL=" " ,то есть оставить пустой ,но на поверку оказалось ,что если так сделать ,то получаем большие проблемы с вводом русских букв в иксовых терминалах ,а вот при указание проблема исчезает.Ещё совет - нужно побольше установить шрифтов TTF в каталог usr/X11R6/lib/X11/fonts/TTF .Это нужно для нормального отображения и вобще работы в некоторых приложений (подойдут из всем ивестной сиситемы виндовс).Рекомендую после того как скопированны шрифты сделать следущее под рутом :
cd /usr/X11R6/lib/X11/fonts/TTF
mkfontscale
mkfontdir
fc-cache

И проверьте что в /etc/X11/xorg.conf указан путь к /usr/X11R6/lib/X11/fonts/TTF.

Иксовые терминалы.
Не во всех терминалах ввод/ввывод русского языка при локали юникод проходит нормально ,лучше для этого под рукой иметь терминалы с умолчательной юникодной поддержкой.Нормальные терминалы поддерживающие юникод - ввод русского с клавиатуры ,и вывод сообшений на экран терминала по-русски -xterm mlterm,rxvt-unicode,gnome-terminal. К остальным нужно применять некоторые ухищрения ,вот например для aterm: файл ~./.Xdefault пишем :
 
Aterm*background: black
Aterm*foreground: #CECECE
Aterm*scrollBar: true
Aterm*loginShell: true
Aterm*saveLines: 3000
Aterm*transparent: true
Aterm*transpscrollbar: true
Aterm*tintingType: true
Aterm*tinting: #a07040
Aterm*shading: 60
Aterm*fade: 90
Aterm*title: aterm
Aterm*iconName: aterm
Aterm*font: -*-terminus-medium-*-*-*-*-*-*-*-*-iso10646-1
Aterm*boldFont: -*-terminus-medium-*-*-*-*-*-*-*-*-iso10646-1
Aterm*geometry: 80x24
Aterm*termName: aterm

Виндовс-Менеджеры
В принципе подойдут все сейчас популярные менеджеры.Опробованны в юникоде : KDE,XFCE,wmaker,семейство боксов -openbox,blackbox,hackedbox .Проблем в работе с юникодом не возникло.Я уверен что и с Gnome никаких замечаний не будет . С установленным из портов fluxbox-0.1.14 есть проблема - никак не хотели отображаться опции из Configure и заголовки приложений .Рекомендую метод - взять и удалить эту версию флукса вобще ,а вместо него взять последние исходники fluxbox-0.9.12 и пересобрать так:
 
./configure
--prefix=/usr/X11R6 \
--enable-xinerama \
--enable-shape \
--enable-slit \
--enable-kde \
--enable-gnome \
--enable-interlace \
--enable-nls \
--enable-timed-cache

gmake
gmake check
gmake install

После этого проблем никаких.

Midnight Commander.
Самый популярный файл-менеджер вызвал больше всего головной боли.Обычный устанавливаемый mc из /usr/ports/misc/mc показал изрядную неспособность работать в юникоде ,даже в юникодных терминалах проявляется неотображение mc вобще или нестабильная работа- пропадание некоторых букв при вводе и т.п. Ясно что тут дело в опциях компиляции .Здесь есть три пути борьбы с данной проблемой :

Путь №1 (юниксоида):
1)Распаковать находящиеся в каталоге /usr/ports/distfiles исходники с mc-4.6.0.tar.gz в любой каталог под рутом (прежде удалите установленный mc) .
2)Берём патчи отсюда - http://www.linux.kiev.ua/%7Esimonov/files/unicode/mc-utf8.tar.gz - распаковываем в каталог с исходником по примеру : cat ./.utf8 | patch2 -p1 -b .utf8 и далее также со всеми патчами .
3)Делаем следущую перекодировку :
iconv -f iso8859-1 -t utf-8 -o mc.hint.tmp mc.hint && mv mc.hint.tmp mc.hint
iconv -f koi8-r -t utf8 -o mc.hint.ru.tmp mc.hint.ru && mv mc.hint.ru.tmp mc.hint.ru
4) Далее упаковываем исходник опять в формат tar.gz и кидаем его в /distfiles ,идём в /usr/port/misc/mc и в Makefile добавляем для CONFIGURE_ARGS+ опцию сборки --with-screen=slang .Потом всё как обычно :
make
make install
При этом сохраниться целостность системы и получите юникодный mc.

Путь №2(меньшего сопротивления):
Установить вместо обычного mc из портов его форк -/usr/ports/misc/mc-light. Данное ответвление mc развивается нашим российским разработчиком .Что мы теряем при этом :руссифицированное меню ,взаимодействие с иксами .Но это при работе в терминале не суть важно ,но что приобретаем :полная поддержка юникода ,множество кодировок (особенно при это видно при просмотре по F3 файлов с разными кодировками и при перекодирование "на лету" по CTRL+T ),и некоторыми дополнительными фичами,одна из которых прямая запись на CD через обыкновенное копирование по F5 и ещё много других ,не говоря уж о красивом разноцветном интерфейсе.

Путь №3 :
Перебороть в себе тягу к mc ,и использовать графические файл-менеджеры поддерживающие юникод - krusader,gnome-commander,gentoo, и т.д.
Скажу что я не смог себя перебороть это .Я выбрал путь№2,чем чрезвычайно доволен,но как говориться каждому своё.

Работа с консольными приложениями в икс-терминалах.
Те приложения которые нормально поддерживают по умолчанию юникод работают более-менее сносно в вышеуказанных юникодных терминалах.Например такое приложение как centericq кроме utf-8 ,уже умеет поддреживать utf-16 и работает без проблем ,только немного поправив опции.Например из редакторов с успехом работают в юникоде -nano,pico,vi.Из консольных клиентов хорошо отработал cone .Но для и для нормальной работы с приложениями не поддерживающими юникод есть выход,например:

Чтобы нормально работать с jed нужно в ~/.bash_profile прописать :
alias jed='LANG=ru_RU.KOI8-R; jed'
ну и далее в том же духе для нужного вам приложения.

Работа с иксовыми приложениями.
C простыми иксовыми и QT-приложениями проблем не замеченно . Но вот в GTK - в некоторых приложениях могут вместо букв быть квадратики или кракозябры (например в xmms в меню ) ,лечиться так : создаём в домашнем каталоге файл ~/.gtkrc и прописываем там следушее :
 
style "gtk-default" {
fontset = "-*-Nimbus Sans L-medium-r-normal--14-*-*-*-p-*-iso10646-1,\
-*-clearlyu-medium-r-normal--17-*-*-*-p-*-iso10646-1,\
-*-r-*-iso10646-1,*"
}
class "GtkWidget" style "gtk-default"

и всё -вместо квадратиков русские буквы ,с размером шрифта можно поиграть.

Вот вроде и всё .Я остался работать в юникоде под FreeBSD ,пока проблем не наблюдаю.
 
 
Автор: Моторин В.Ю. aka wolf_black
Категория: Установка и настройка | Добавил: oleg (12.11.2007)
Просмотров: 1541 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024