avva: (Default)
[personal profile] avva
Ещё всякие муторности о процессе конфигурирования моего линукса.

Я ненавижу локаль.

Слово LC_CTYPE вызывает во мне что-то родственное ненависти.

Сейчас провёл кучу времени, настраивая свой любимый mutt, чтобы показывал русские буквы нормально.

Я ещё не знаю, буду ли пробовать какие-то графические юниксовские мейлеры (типа Mozilla Thunderbird или Evolution). Может, и стоит. Но пока что я возвращаюсь обратно к mutt'у, по которому успел заскучать (подписаться, что ли, заново на mutt-dev?).

Казалось бы, всё должно быть просто. Я привык, что в mutt могу менять charset терминала (т.е. говорить mutt'у, какой у меня charset терминала): ":set charset=cp1251", например. Проверить, что начинает правильно показывать (скажем, письма-уведомления о комментах от ЖЖ), внести это навсегда в .muttrc, и всё.

Тем более, что программа-терминал, gnome-terminal, позволяет тоже менять кодировки на лету: просто в меню выбираешь, в какой кодировке она должна воспринимать выдаваемые ей символы (включая и UTF-8 при желании), и сохранить можно. Очень удобно. Если добавить к этому то, что она позволяет много терминалов в табах одного окна открывать, и палитру настраивать -- вообще непонятно, зачем теперь rxvt нужен, я и не буду его ставить, наверное.

Но. mutt долго и упорно отказывался показывать мне русские буквы: либо показывает вопросительные знаки, либо восьмеричные коды типа \321 вместо символа. То есть, думает, что не может показать, хотя на самом деле может.

После долгого и упорного копания в исходниках оказалось, что при постройке он по умолчанию использует системные функции перехода от wide characters (Юникода, короче говоря) к multi-byte characters. Внутри у себя он всё пропускает через Юникод так или иначе, но при выдаче на экран обратно переводит в какую-то кодировку. Но функции, которыми он при этом пользуется - wcrtomb(), mbrtowc() и некоторые другие - используют локаль для того, чтобы знать, откуда и куда переводить. Т.е. заботливо выставленный мной set charset ничего не делает, т.к. (например) mutt во время вырисовки строки письма, получив одим символ в Юникоде, вызывает wcrtomb(), чтобы перевести его обратно в восьмибитную строку и передать curses, а этот вызов пользуется выставленной у меня локалью и туда и переводит (если может вообще). Если при постройке mutt не находит этих системных функций, то он использует свои такие же, но пользующиеся как раз не локалью, а его конфигурационной переменной charset - то, к чему я привык в прошлом.

В общем, я попытался поиграться с локалью, но, как обычно, кроме приступа ненависти это ни к чему не привело. Сначала долго вспоминал счастливо забытый за последние годы формат LC_CTYPE и прочих его друзей. Ну хорошо, вспомнил. LC_CTYPE=ru_RU mutt . Он поднимается и показывает мне русские буквы, переведенные... в ISO-8859-5! Боже мой, какое извращение, ну да, это же дифолтная кодировка ru_RU... пытаюсь выставить LC_CTYPE=ru_RU.CP1251, но это ни к чему не приводит, отказывается показывать в cp1251. Да я и в любом случае не хочу менять локаль на русскую! Потом только неожиданных проблем не оберёшься с сортировкой символов и ещё кучей вещей.

Потыкался я, потыкался, и решил перестроить mutt, чтобы он не пользовался glibc'шными функциями для перевода unicode<-->multibyte, а пользовался своими. К счастью, у его configure и флаг для этого нашёлся: --without-wc-funcs. Осталось только сообразить, как это сделать "правильно" в рамках Gentoo... после недолгого копания в недрах portage и ebuild нашлась переменная EXTRA_ECONF, и после запуска EXTRA_ECONF="--without-wc-funcs" emerge mutt всё собралось, построилось и заработало.

Уф.

Да, вот как я настроил себе почту пока. Установил postfix (ну не sendmail же, а qmail я совсем не знаю и учить лень). Собственно принимать почту у себя на машине пока не собираюсь, незачем особо, использую postfix только для отсылки (а почему не какой-нибудь простой примитивный отсыльщик типа ssmtp? потому что мне нужна посылка через рилей, и говорить с ним надо на SASL, а всякие простые отсыльщики этого не умеют. postfix умеет). Принимаю почту, качая её через POP3, для этого использую getmail (решил попробовать что-то новое вместо fetchmail), пока отлично работает. Для локальной delivery с фильтрами использую maildrop (опять же вместо привычного procmail, чтобы что-то новое попробовать), тоже очень хорошо выглядит, фильтры намного удобнее устроены, чем у procmail'а, правда, не успел их ещё пока настроить.

Все вокруг стремятся убедить меня использовать формат maildir для хранения почты -- Gentoo так конфигурирует по умолчанию, и пришлось его переиграть на использование mbox; getmail и maildrop умеют доставлять как в mbox, так и в maildir, но в один голос советуют maildir (для тех, кто не знает: mbox - это когда ящик писем в одном файле, maildir - ящик занимает директорию, каждое письмо - в отдельном файле + некоторые контрольные. Основное преимущество maildir в том, что не нужно locking делать для добавления нового письма, и не нужно сканировать все письма, когда открываешь ящик). Но я решил всё же не делать этого пока. Во-первых, привык к mbox'у всё же. Во-вторых, психологически мне тяжело принять систему, при которой каждое письмо в отдельном файле (и, скажем, ящик большой рассылки превращается в директорию с 3000 крошечными файлами). Даже хоть я умом и понимаю, что современные файловые системы с этим неплохо справляются, уж лучше, по крайней мере, чем в прошлом, а сердце всё равно не хочет это принять. Ну и ладно, поживу ещё с mbox'ом.

Date: 2003-08-08 10:14 pm (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
gnome-terminal У меня имеет неприятную привычку иногда падать, когда завершается бегущий в нем процесс (shell или (у меня) тот же mutt). Это особо неприятно тем, что у него один процесс на все окна, т.е. они все падают.

Date: 2003-08-08 10:25 pm (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
Да, а используемые локали нужно записать в /etc/locale.gen и после этого запустить скрипт locale-gen, иначе могут быть странности, например у GNOME в меню надписи по-русски не видны.

Date: 2003-08-09 05:08 am (UTC)
From: [identity profile] mbravo.livejournal.com
Я долго сомневался насчет Thunderbird, пугаясь надписей "ЭТО ДАЖЕ НЕ АЛЬФА" и т.д., но пересел и не жалею - он настолько же удобный, как и FireBird, и чудесно с ней дружит.

Единственное, что меня немного беспокоит - это отсутствие до конца очеловеченного процесса апгрейда версий Fire/Thunder-Bird-ов. Там у них у всех настоятельно реокмендуется создавать новые профайлы при установке новых версий, а это тащит за собой геморрой с импортом-экспортом. Но по сравнению с удобствами пользования это всё пустяки.

Хотя наличие Thunderbird mutt-а, конечно, не отменяет, я без него не могу :) Иксы приходят и уходят, а текстовая консоль - она навсегда :)

Про postfix ничего не скажу - так я и не сталкивался с ним ни разу реально. Как перешёл когда-то с sendmail-а на smail и потом на exim, так больше ничего и не хотелось, а в Дебиане exim вообще по умолчанию ставится.

Date: 2003-08-09 05:19 am (UTC)
From: [identity profile] squadette.livejournal.com
почему-то многие используют локаль для сортировки Unicode

это внушает грусть

большие куски локали устаревают, если переходить на Unicode.

Date: 2003-08-09 11:25 am (UTC)
From: [identity profile] avva.livejournal.com
Да, это нехорошо, конечно. У меня пока не падал (стучу по дереву).

Я в восторге от табов его, и потихоньку отучаюсь открывать много терминальных окон, открываю табы внутри одного окна. Переделал клавиши, чтобы Ctrl-N открывал новый таб, Ctrl-W закрывал (как в Мозилле/Опере), совсем хорошо стало.

Date: 2003-08-09 11:27 am (UTC)
From: [identity profile] avva.livejournal.com
Нет у меня ни /etc/locale.gen, ни locale-gen. Наверное, Gentoo по-другому с локалью работает. В любом случае я хочу держаться настолько подальше от локали, насколько это возможно. Вся эта система просто до неприличия морально устарела.

Date: 2003-08-09 11:28 am (UTC)
From: [identity profile] avva.livejournal.com
почему-то многие используют локаль для сортировки Unicode

The wonders never cease.

Нет-нет, подальше от всего этого.

Date: 2003-08-09 11:30 am (UTC)
From: [identity profile] avva.livejournal.com
Я решил, что посижу пока в mutt'е, тем более, что мне очень приятно возвращение в него после двухлетнего перерыва (в который я пользовался TheBat!-ом - ничего почти плохого не могу о нём сказать, но всё же mutt это наше всё), а когда Thunderbird дойдёт там до 0.3 или до 0.4, скажем -- они сейчас довольно быстро двигают это дело вперёд, насколько я понял (маладые, гарячие ;)) - попробую поставить.

Date: 2003-08-10 02:27 pm (UTC)
From: [identity profile] pishi-chitai.livejournal.com
Зато я могу ;)

Не знаю, надо ли оно вам, но:
Дельфийское нутро Бата периодически проскакивает в виде неприятных Access Violations в самых неожиданных местах. Не смертельно. В 1.62, что у меня, почти не встречаются(а пользуюсь я им давно). На диалапе(у меня так) - при большом трафике коннекты уходят в Idle (как пишет Бат в Connection Centre) и не снимаются батовскими же средствами. Такое соединение(если не обратить внимание), вполне может просуществовать несколько часов, пока не заметишь. Ну, мелкие глюки всякие, тоже не смертельно. Но раздражает.

Правда сколько-нибудь альтернативный(по возможностям, нужным мне) почтовик под win32 я так и не нашёл. Так что кушаю кактус.

Date: 2003-08-10 02:32 pm (UTC)
From: [identity profile] avva.livejournal.com
Обе проблемы, что Вы перечислили, у меня тоже случались. Но и после падения, и после злобного убийства TheBat!-а через Task Manager (сам он не выходил у меня, если у него было такое зависшее соединение), я ни разу не потерял данные и ни разу не испортился ни один ящик (а почты получаю я её очень много, не только личной, ещё кучу рассылок). Для виндовской аппликации это очень неплохо ;) так что я не расстраивался очень по этому поводу.

Кроме того, механизм фильтрации у него довольно мощный, для моих нужд вполне адекватным оказался.

Date: 2003-08-10 02:35 pm (UTC)
From: [identity profile] pishi-chitai.livejournal.com
А что за проблемы "с сортировкой и прочим" в русской локали? Я, честно говоря, не сталкивался. Т.е. могу понять тех, кому сообщения на русском эстетически неприятны, но чтобы какие-то проблемы.. Расскажите?

ru_RU у вас алиасом на официальную русскую кодировку.
grep ru | /usr/share/locale/locale.alias
cp1251 локали у вас, скорее всего, в системе просто не существует.
locale -a | grep ru

Date: 2003-08-10 02:40 pm (UTC)
From: [identity profile] avva.livejournal.com
Ой, я не помню ;) когда-то в прошлой жизни у меня были постоянные проблемы с локалью. С установкой её правильной, потом с тем, что всякие дурацкие программы начинали мне по-другому сортировать или даты показывать, итд. С тех пор я просто ненавижу локаль и стараюсь держаться от неё подальше, вот и всё. Да и не привлекала меня никогда идея выставлять раз и навсегда свои предпочтения языка интерфейса итп. Я знаю больше одного языка, и менять их хочу, когда захочется, в нужной аппликации, а не раз и навсегда для всех программ.

grep ru | /usr/share/locale/locale.alias
russian ru_RU.ISO-8859-5

cp1251 локали у вас, скорее всего, в системе просто не существует.
locale -a | grep ru


ru_RU
ru_RU.iso88595
ru_RU.koi8r
ru_UA
ru_UA.koi8u
russian

Да, вы правы, очевидно. Ну и фиг с ним ;)

Date: 2003-08-10 05:23 pm (UTC)
From: [identity profile] drw.livejournal.com
Ох, вряд ли вы ненавидите локаль так, как я ненавижу модуль winbond-840.

Date: 2003-08-10 05:43 pm (UTC)
From: [identity profile] avva.livejournal.com
А что это, и за что его так?

Date: 2003-08-10 06:02 pm (UTC)
From: [identity profile] drw.livejournal.com
Драйвер для некоторых сетевых карточек. Типа, я через него в интернет хожу.

Так он, зараза, под новое ядро компилиться не хочет.

Date: 2003-08-11 02:28 am (UTC)
From: [identity profile] sobaker.livejournal.com
Основное преимущество maildir в том, что ... не нужно сканировать все письма, когда открываешь ящик)

Там появились индексные файлы? Если нет, то все равно придется перебрать все эти тысячи файлов для получения заголовков, другое дело, что дальше header'a письма читать ничего не нужно.

Но это все равно часто работает медленнее mbox, т.к. там хоть все кэшируется заранее, а 3000 маленьких файлов вполне себе могут быть разбросаны по диску, поэтому каждый читается отдельно.

По-крайней мере, пару лет назад было так :)

Date: 2003-08-11 02:32 am (UTC)
From: [identity profile] sobaker.livejournal.com
Честно говоря, не очень понимаю, почему должен смущать альфа-статус thunderbird'a - ведь это один-в-один выдранный из Mozilla компонент Mozilla Mail (с последующими движениями в сторону Firebird). После того, как "выдирание" произошло и за пару месяцев все раны более-менее зажили - проблем вообще никаких, а функциональность полностью аналогична старушке Mozilla Mail.

Кстати, профайл никогда не менял. Просто переписываю полностью дистрибутив Thunderbird, пока все работает :)

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
2829 30 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 12:32 pm
Powered by Dreamwidth Studios