LINUX.ORG.RU

Настройка RedHat 9 на русскую локаль KOI8-R и другое...


0

0

В свое время, после выхода в свет RedHat версии 8.0, мною была написана
статья "Переход с RedHat-7.x на RedHat-8.0", в которой описывалось как
заменить локаль UTF-8 на KOI8-R в связи глючности и проблемности русской
локали UTF-8, с выходом RedHat версии 9 казалось, что эту проблему решили
и русская локаль UTF-8 заработала как надо, правда не везде гладко, но
решаемо. Однако многие пользователи RH9 хотят старую хорошо
отработанную временем локаль KOI8-R, оно и понятно, UTF-8 все еще имеет
проблемы с консольными приложениями, да и с некоторым старым софтом, от
которого не хочется отказываться. Видимо по этой причине меня стали
забрасывать письмами с просьбой рассказать как сделать такой переход, у
меня нашлось немного времени это сделать, поэтому выполняю просьбу тех,
кто меня об этом просил.

P.S. В данной статье рассматривается не только локализация, но и некоторые
наболевшие вопросы по RH9...

>>> Подробности

★★★

Проверено: green
Ответ на: комментарий от anonymous

Анонимус, я putty хожу уже с полгода из-под винды на рабочую машину с ru_RU.UTF-8 и "всё пучком".

chumpa
()

Я живу в UTF с 8.0 - и ничего, пока не умер (правда, я не админ - я developer/desktop user). Кстати, про то, что rpm ругается на то, что не положили в %files - я сначала долго ругался, потом оценил. Все-таки, чем жестче определены правила игры, тем лучше. И если тебе какой-то файл не нужен - не хрен его в make install запихивать. А если нужен - пусть уж будет в files. Я - за повышение дисциплины разработки. Иногда можно и насильственно...

svu ★★★★★
()

>Я живу в UTF с 8.0 - и ничего, пока не умер

:-) Терминалкой TERM90 с 386 ноута/DOS на linuxbox+модем+getty очень здорово ходить...

anonymous
()

>Я вот уже с год на ru_RU.UTF-8 самолично свой линукс (сперва ASP7.2,
>сейчас ALM2.2) перевёл, радуюсь донельзя, а тут некоторые русские
>редхатоиды похоже ничего в кодировках не понимают.

2chumpa:
А в чем собственно проблема? Был вопрос, как сделать локаль koi8-r
в RH9, чего в этом задорного? ru_RU.UTF-8 это конечно хорошо, но
вот для консольных приложений он тяжеловат, а для Х-ых почти
пофигу, QT/KDE и так работают с UTF-8, какая бы локаль не стояла,
да и gtk2 тоже. Статью свою я назвал "Настройка" и уточнил некоторые
нюансы с less и groff, я же не виноват, что эти приложения заточены
редхедовцами чисто на UTF-8 грубым хаком, в место того что бы сделать их
более универсальными, да и MC тоже так же захачен. Если хотите
знать мое личное мнение, то я бы консоль оставил 8-ми битную, что
собственно и делает ru_RU.KOI8-R, а вот имена файлов и директорий
в файловых системах хранил бы только в юникоде. То что RedHat
пытается перевести линукс на UTF-8 - честь им и хвала, только совместимость
и функциональность при этом не должны страдать. "Русские редхатоиды"
прекрасно видят и осознают проблему с UTF-8, так как для нас это
большая головная боль, а вот "английские редхатоиды" пытаются решить
эту проблему быстрым наскоком, игнорируя наше мнение, просто для них
почти ничего не меняется в однобайтном регистре символов таблицы UTF-8.
Все это касается только консоли, в Х-ах, как я уже сказал, совершено
фиолетово на кодировки.

P.S. Народ, перестанте лукавить и рассказывать сказки про "безглюсность"
UTF-8, UTF-8 в консоли не тоже самое, что UTF-8 в Х-ах. Либо мы
отказываемся от работы в консоли и работаем чисто в Х-ах с эмуляцией оной,
либо беремся все вместе и решаем эту проблему для всех консольных
приложений, т.к. за нас этого никто не сделает. У нас есть ASPLinux
и ALTLinux компании, почему бы им этим не занятся? Или все должны
делать энтузиасты в свободное от работы время? Эту проблему можно
решить только работая над этой проблемой и именно только в таких
компаниях....






McMCC ★★★
() автор топика
Ответ на: комментарий от McMCC

Ладно, "перестаю лукавить". Будем считать, что в консоли UTF8 действительно еще недозрела. И дело, думается, тут не только в том, что конкретные (особенно нкурсовские) консольные проги плохо ее поддерживают (таких уже все меньше и меньше), но и в том, что клиенты телнета просто неспособны ее переварить. И тут - ни AltLinux, ни кто другой централизованно проблему решить не сможет. Не станет же AltLinux платить авторам PuTTY за поддержку уникода, в самом деле?

Поэтому в .profile у рута я бы сделал так: если нет $DISPLAY - тады export LANG=C (кстати, вообще, наверное, руту лучше С прописать в любом случае). Но системную, умолчательную локаль все-таки оставил бы уникодной. Что делать с русскими именами файлов? Да ничего:). Оставлять уникодными. В конце концов, зачем человек телнетом ломится? Явно не для того, чтобы почитать "Отчет за Май 2002.doc". Ему нужно fsck, ifdown/ifup, /etc/X11/XF86Config - настроил системочку и ушел (если сервер) или перелез в иксы (если десктоп).

svu ★★★★★
()
Ответ на: комментарий от svu

Надеюсь, что народ понимает - под телнетом в данном случае я подразумевал все типы консольного доступа - модем, ssh, rsh

svu ★★★★★
()

2McMCC

Спасибо.

На разных критиканцев не обращайте внимание. Сами ничего не делают и что-то советуют, а когда прислушаешься, не понимаешь, что советуют...

anonymous
()

McMCC - очень крутой админ, потому что опыт и способность объяснять у него есть. А кто на него рычит, тот или завидует, или дол%%%еб. Идите в школу и учитесь, а потом уже и поучайте (яйца курей не учат).

anonymous
()

тем у кого только английский+русский действительно что юникод что кои8-р, выгоды нету. Есть не мало тех кто использует {фр|нем|еще-какой}+русский, вот тут бяда.

anonymous
()

McMCC, в плане конструктивной критки. Вы, пожалуйста, в следующий раз почитайте RELEASE-NOTES сначала, всё будет ещё луше. Раздражение и зуд сразу исчезнут.

Dronov
()

>McMCC, в плане конструктивной критки. Вы, пожалуйста, в следующий
>раз почитайте RELEASE-NOTES сначала, всё будет ещё луше.
>Раздражение и зуд сразу исчезнут.

2Dronov:
Я прекрасно осведомлен, что там написано, только на что нужно
обратить внимание? Или вы про то, что сборку дебаг пакетов
можно отключить через ~/.rpmmacros? Если про это, то на мой
взгляд, эта фича должна быть отрублена по умолчанию и включаться
как раз через этот конфиг, именно это и вызывает "раздражение и зуд",
плюс еще проверка на файлы в секции %files...

McMCC ★★★
() автор топика

to: anonymous (*) (2003-06-20 15:43:11.649407)

> ili esche primer: > > ls | grep ^mark > > naberete komandu, poprobuite ee tutzhe ispravit' naprimer na > > ls -a | grep "^mark"

Che-to ya ne pomyal v chem prikol. Nu nabral i chto? Vrode nichego ne proizoshlo.

anonymous
()

2McMCC:

А, извините, я думал -- вы и в иксах и в консоли одним и тем же пользуетесь, как я. Да, в консоли утф8 ещё недоработана. В основном, из-за неготовых "из коробки" к уникоду slang и ncurses, например. Я для матта в своё время ncurses с --enable-wchars пересобрал, и матт в уникодной консоли после этого заработал.

Но только я не понимаю -- для части приложений работающих и там, и там вы держите два конфига (один -- кои8, другой -- уникодный)?

Да и вообще консоль как аргумент я не рассматриваю, это для меня что-то вроде редкой необходимости в конфигах поковыряться, если не работает. Работа по ssh -- дело другое, в putty и линуксовых ssh с этой работой в уникоде всё нормально, я не понимаю svu, о чём он.

chumpa
()

2 anonymous (*) (2003-06-20 13:30:18.723655) uxterm или xterm -u8

anonymous
()

А если у меня сервер??? Нафига в сервере иксы? Все-таки для консоли лучше быть koi8, я так считаю. Это все-таки стандарт для рунета.

ЗЫ Эти англо-саксы, специально utf внедряют, чтобы больше проблем у всех остальных языков было. Ведь в utf-8 с английскими буквами все как в ascii. Наверняка они агенты влияния микрософт.

anonymous
()

2McMCC А Вы не могли бы рассказать поподробнее,что вы правили в макросах?А то ASPLinux 9 макросы на ваши не поменять,а проблемма есть :-(.

Спасибо.

Alexandr Yakunin

anonymous
()

большое спасибо

большое спасибо за информацию по настройке
помогло не только в локальной работе но и в работе по ssh
спасибо за труд

l-xoid ★★★★★
()

Ну скажите хоть кто-нибудь, на хрена в консоли что-нибудь кроме английского языка?!

anonymous
()

anonymous (*) (2003-06-21 11:11:48.569842)

русские имена файлов, почта

anonymous
()

2: anonymous (*) (2003-06-21 11:11:48.569842)

Можно ещё grep-ом нужные слова среди кучи документов искать, diff-ом по ним ездить. А vi, mail.А ещё в win партиции полно русскоязычных названий.

anonymous
()

>Ну скажите хоть кто-нибудь, на хрена в консоли что-нибудь кроме английского языка?!
Например, если нужно почитать почту через Инет, а стандантные почтовые 
потоколы не доступны, или нет графики.
Кстати а кого-нибудь есть консольные фонты со всеми глифами?

svs ★★★
()

svs (*) (2003-06-21 13:39:17.105349)

пакет fonty-rg

anonymous
()

Консоль IBM PC VGA убогая по умолчанию и умеет отображать только 512 символов одновременно и то только серым по черному. Зачем оно нужно ? Шашечки или ехать ?

Или вы у себя запускаете X-ы, в них Xterm а в нем mc ? ;-))

anonymous
()
Ответ на: комментарий от chumpa

У меня, помнится, были проблемы с уникодом в putty. Впрочем, это было давно и, возможно, уже неправда:) Кстати, в базе termcap на стороне клиента должна указываться способность работать с уникодом для конкретных TERM? Расскажите, если кто разбирался...

svu ★★★★★
()

знаете, utf-8 - это конечно круто, но достаточно беглого чтение rfc 2044 чтобы его для русских людей в /dev/null отправить.;-)
если ещё непонятно почему - сделайте так:
iconv -f koi8-r -t utf-8
наберите любое слово по русски, enter
сравните кол-во знаком в 1 строке и во 2ой.
;-((
сразу становится понятно, что как и ASCII, так и utf-8 придуман америкосами для америкосов и на проблемы остального мира им насрать.
лично я не вижу для себя никакой выгоды в переходе на utf-8 вивду того ч то у меня подваляющее большинство документов на русском.
вот на utf-16 я бы подумал и может перешёл. это имеет смысл.

mumpster ★★★★★
()

Хехехе! в UTF-8 хоть латинница занимает по одному байту, а в UTF-16 любой символ будет жрать два байта - в результате те же сырцы кернела будут весить в два раза больше - я уж молчу про остальные проблемы 8)

anonymous
()

Вопрос к тем, кто уже который год использует utf-8.

Как в эмуляторе терминала (gnome-terminal, xterm..) заставить mc отображать русские буквы?

дистрибутив mdk 9.1

timf
()
Ответ на: комментарий от mumpster

Да, mumpster, по твоей логике лучшим выходом для русских была бы 6битная кодировка. И заглавные/строчные буквы одним кодом сделать (только код префикса ввести: uppercase, lowercase).

Ты что, вот так каждый бит считаешь?

Головой-то подумай, своей, почитай http://www.unicode.org, посоображай. Ты, наверное, один из немногих ренегатов-приверженцев 8битных кодировок и любителей траха с ними.

УТФ-8 -- наше светлое будущее, ascii тоже не сразу вытеснила все остальные кодировки (а было их много). Ничего, уникод через 10 лет будет везде...

chumpa
()
Ответ на: комментарий от timf

uxterm запускай вместо xterm. И шрифты в ресурсы пропиши в кодировке 10646.

chumpa
()

Уникод маздай! Потому что его в M$ придумали. И только поэтому его надо давить.

anonymous
()

http://www.unicode.org/consortium/memblogo.html -- участники Unicode Consortium. Full members там всего лишь 10:

Adobe
Apple
IBM
SUN
SAP AG
PeopleSoft
Oracle
JustSystem
Government of India (Ministry of Information Technology)
Government of Pakistan (National Language Authority)

Microsoft'a нет вообще.
anonymous (*) (2003-06-22 16:43:02.683301) -- ты мудила, недостойный посещения ЛОРа.

chumpa
()

Ну блин, члены - не члены, это дело такое ....

Практически все кто юзает не ascii символику вынуждены юзать юникод: индусы, арабы, китайцы, японцы, корейцы - да всех не перечтешь.

Кстати, у них были такие же извроты как и у нас - начиная с транслита ... Но шас рядами и колонами они движутся к UTF-8 - деваться некуда.

Ну не влезает у них азбука в 8мь бит 8)

anonymous
()

Реализация поодержки юникода в голой консоле (не Х) крайне ограничена: многие видюхи в текст-моде не поддерживают больше 512 символов одновременно отображаемых на экране.

Единственный выход - frame buffer или же отказ от консоли как таковой.

Что вобще-то достаточно сумрачно на текущий момент...

anonymous
()

Да и прорисовка иероглифов в разрешении 8х16 вызывает трудно определимое чуство - сначала охота материться ...

anonymous
()

:>У нас есть ASPLinux и ALTLinux компании, почему бы им этим не занятся?

Не смеши народ ....

umount
()
Ответ на: комментарий от chumpa

> по твоей логике лучшим выходом для русских была бы 6битная кодировка
если ссылаетесь на меня, то хотя бы без извращения смысла:
я достаточно чётко скзаал, что меня бы в такой ситуации больше бы устроил переход на utf-16, откуда Вы взяли что я каждый бит считаю - не знаю, но вот меня бесят изврашения наподобие "In UTF-8, characters are encoded using sequences of 1 to 6 octets" - прежде чем болтать про светлое будущее - прочитайте внимательно стандарт (rfc2044) ну правильно, чо янки беспокоиться, у них всё в 1 байт как укладывалось так и укладывается:"US-ASCII values do not appear otherwise in a UTF-8";-(. utf-16 (я имею в виду BMP) охватывает почти все живые языки, исключая всё равно маргинальные - поэтому логичный вывод: пользоваться как основным в X и в системе utf-16 (что M$ и сделала в своё время совершенно правильно, непрваильно было только заточка исключительно под utf-16 в Win32API;), а на PC console - koi8 (если не понимаете почему - идите читайте хотя бы Нортона).

mumpster ★★★★★
()

Что характерно, сплошь все компании из стран, где нативный или второй государственный - английский. Так что им геммороя не будет. А всем остальным -... В частности России это НЕ НУЖНО!

Короче, я НЕ ЗНАЮ линуксоидов в России, которые не плевались бы на слова "utf-8 в консоли". Все плюются на инициатву редхата с утээфизацией и юникодизацией линукса.

anonymous
()

Как бы не ругали MS, но они приняли стратегически верное решение:

На консоли - 8 бит; в окнах - 16 бит; а UTF-8 только как *транспортный* протокол для HTTP, SMPT e.t.c.

Использовать UTF-8 как *рабочую* кодировку *внутри* приложения, это голимый маразм. Тип wchar_t (TCHAR) эффективнее в разы.

Попробуйте выполнить сортировку или простейшую операцию "найти 500-й символ" в русско-китайском тексте в кодировке UTF-8 и все поймете.

anonymous
()

"На консоли - 8 бит; в окнах - 16 бит; а UTF-8 только как *транспортный* протокол для HTTP, SMPT e.t.c. "

Вот именно!!! Так и редхату надо было сделать - да нет, амбиции заели, законодатели мод в среде линукс, блин.. :-(

anonymous
()

2McMCC Спасиб, тэбэ, дарагой! И не слушай тех, кто кричит "не этично". Зато "... дешево, надежно и практично." Сделал - честь тебе и хвала. Не у всех есть время и навыки разбираться что где и к чему. А те что кричат это, пусть сначала сами что-то сделают и выложат все это для простых людей. А мы на них и их творения посмотрим и по достоинству оценим. :) Спасибо тебе большое за то, что сделал, протестил и выложил для всех, а не так как те писаки "... а у меня и без вас типа все работает...". Нет бы поделиться, подсказать. А то как хохол (в плохом смысле слова) "моя хата з краю, ни чого нэ знаю, або - нэ зьим, так понадкусую..." плевать на всех остальных...

sdmitry
()

2 chumpa (*) (2003-06-22 19:20:33.781085)
По ссылке - там 15 полноправных членов - МС в их числе за номером 9 (слева направо, сверху вниз)
Виндузятник

anonymous
()
Ответ на: комментарий от anonymous

Виндузятник, действительно -- я ошибся. Привык без картинок всё смотреть, и не заметил, что скроллинг вправо есть.

Прошу прощения у аудитории за дезинформацию.

chumpa
()
Ответ на: комментарий от sdmitry

sdmitry, так Unicode-HOWTO давно написано, я лично всё по нему делал. Трудности были, конечно -- но терпенье и труд всё перетрут.

chumpa
()
Ответ на: комментарий от anonymous

>"На консоли - 8 бит; в окнах - 16 бит; а UTF-8 только как >*транспортный* протокол для HTTP, SMPT e.t.c. " >t m >Вот именно!!! Так и редхату надо было сделать - да нет, амбиции >заели, законодатели мод в среде линукс, блин.. :-(

Да вы что, охренели совсем? RH-то тут причём? ты такой компот хотя бы у себя лично сперва настрой.

А кроме того -- зачем на консоли 8 бит? Отлично уникод на консоли работает, ограничение в 512 символов не он накладывает и он тут не при чём.

Лично я в своей консоли приделал правильный SYSFONTACM, когда мне это было нужно. Был русский, латинский и еврейский (hebrew), кажется, хотя не проверял, русского и латинского хватило. Но сейчас -- нафиг надо, иксов полностью хватает. Да, я не пользуюсь Midnight Commander, эту кривулю мне полностью заменяет zsh (хотя в zsh уникод на уровне шелла не понимается, но completions работают и /bin/ls независимо от zsh всё выводит). Я думаю, что рано или поздно zsh перепишут. В конце концов, bash и readline в utf-8 отлично работают.

Вообще -- 99% криков "уникод не для консоли" означают, видимо, "мой MC не понимает ru_RU.UTF-8 или я не знаю как его настроить". Трахаетесь с MC -- так и трахайтесь с ним сами, а на правильный уникод нечего пенять, коли башка крива.

chumpa
()
Ответ на: комментарий от mumpster

mumpster, я не понял вас, извините.

Да, я представляю себе смысл utf и ucs представлений уникодных символов. Вы, очевидно, руководствуетесь логикой "все должны пострадать от перехода на utf-8, а не только русские". Я считаю -- пусть каждый сам выбирает, какую локаль ему использовать, а транспортные протоколы должны лишь декларировать локаль передаваемых данных.

Каждая конкретная программа должна лишь правильно использовать iconv-механизмы современных glibc. И всё. Вы же видите -- половина здесь пишущих вообще за koi8-r, как их на utf-16 перевести.

utf-8 должна быть той минимальной базовой кодировкой, которую понимает программа (в xml это так, например).

Чем же хороша koi8-r, я не понимаю. Буквы в ней отсортированы как попало, Нортона у меня нет -- поясните сами.

chumpa
()
Ответ на: комментарий от chumpa

> все должны пострадать от перехода на utf-8, а не только русские
нет, это не моя логика, тем более что от этого пострадали не только русские;). просто в том, как составлен стандарт, очень ярко проявилась колониальная сущность т.н. "западной цивилизации" - "мы свои проблемы решаем как нам лучше/легче, а Вы - как хотите". просто что например изменилось для kanji и прочих с переходом на utf-8: как раньше была смесь 1-о и 2-байтных знаков, так и сейчас осталась.Для русских же и для некоторых других всё стало даже хуже - вместо 1 байта стало 2.;-)
Хжуе всего, что добавляется дурацкое преобразование в алогритме.
Поэтому я считаю, что для неамериканцев имеет смысл только переход на utf-16. А поскольку глобализация - процесс объективный и касается всех, нечего американцем впереди паровозха бежать, а надо просто сделать чтобы было удобно всем. BTW, сама идея ВСЕГДА иметь лишний байт, чтобы только отличать кодировки - ущербна, как обойти это ограничение, знали ещё d XIX веке (азбука Бодо, например) - говорить, что-де "utf-8 хорошо для передачи по каналам связи потому что он 8-бит" - якобы 8-бит, потому для всех знаков кроме US ASCII - он 2 или даже больше байт. Так что это полная лажа. А вот определение довлеющей в документе кодировке и "установка" её как "кодировки по умолчанию" - было бы крайне полезно - именно этот приём применяется для сжатия вообще и в каналах связи в частности ("наиболее часто используемые знаки имеют меньшую длину") - этому правило utf-8 или удовлевтоярет с большим трудом или вообще не удовлетворяет никак (если передаются документы не на анг-ком языке например) - т.е. придуман дл ячего угодно но только не для передачи неаглоязычных текстов по связям. Хотя казалось бы чего проще - выставил базовую строку UTF - и вперёд, всё что попадает в <127 - они. более того, с относительно простой модификацией, это годится и для 2-яызковых документов (наиболее часто используемый вариант многоязыковых документов).
Для хранеия-же и обработки число битов в знаке уже не так (в наше время) критично, гораздо критичнее простота алгоритмов - тут у utf-16 конкурентов просто нет.
Корчое, "хотели как лучше...';-(

mumpster ★★★★★
()
Ответ на: комментарий от chumpa

> Чем же хороша koi8-r, я не понимаю. Буквы в ней отсортированы как
> попало, Нортона у меня нет -- поясните сами.
1) хороша она тем, что подходит для PC консоли (так как 8-битная) и устойчива к типичному искажению при передаче по связям (8-бит, опять американизм ;).
Буквы в ней отсортированы по т.н. фонетическому признаку.BTW, и в любимой многими cp1251 и в utf, тоже есть неправильность в сортировке букв. Если Вы подзабыли, напоминаю, что етсь такая буква "Ё" в русском языке и стоит она в азбуке после "Е" и перед "Ж". проверьте, какой у неё код в utf-8?;-)
2) Нортон имелся в виду не NC, а автор книжки по устройству IBM PC.

mumpster ★★★★★
()

В том все и дело, что для _подавляющего большинства русских_ utf в консоли не несет никакой пользы, а одни проблемы! От этого выигрывают исключительно те, кто пишет на более чем двух языках(En+Ru). А их - меньшинство. И теперь большинству приходится подчинятся меньшинству.

anonymous
()

На самом деле, UTF-8 это злобная провокация американских империалистов против китайского Интернета.

US-ASCII в UTF-8 не дает лишней загрузки линии передачи. Вообще.

Западноевропейские буквы загружают линию на +10..15%. Польские - на 15..20%

Кириллица - в ДВА раза.

Китайский - почти в ЧЕТЫРЕ раза.

Следовательно, русский Интернет будет работать в два раза, а китайский в четыре раза МЕДЛЕННЕЕ.

Внимание, вопрос. Кого не любят американцы ?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.