2010
man-db - замена man с поддержкой UTF-8
С переводом системы на юникод, столкнулся с проблемой отображения man-страниц на русском. Решение нашлось довольно быстро в виде небольшого изменения в «/etc/man.conf». Нужно заменить строку с «NROFF», как показано ниже.
/etc/man.confNROFF /usr/bin/nroff -mandoc -c | iconv -c -f utf8 -t iso8859-1 | iconv -c -f koi8-r -t utf8
При выводе «man --help» также наблюдались «непечатные символы». Но это тоже вылечилось легким патчем к ебилду.
man-1.6f-r4.patch--- man-1.6f-r4.ebuild.old 2010-01-28 08:36:59.000000000 +0200
+++ man-1.6f-r4.ebuild 2010-01-28 08:36:59.000000000 +0200
@@ -59,6 +59,12 @@
mylang="all"
else
mylang="${LINGUAS// /,}"
+ if [ ${mylang} == 'ru' ]; then
+ einfo "Patching for ru_RU.UTF8 support"
+ iconv -f koi8-r -t utf-8 ${S}/msgs/mess.ru > ${S}/msgs/mess.ru.utf8
+ mv ${S}/msgs/mess.ru.utf8 ${S}/msgs/mess.ru
+ echo "$ codeset=UTF-8" > ${S}/msgs/mess.ru.codeset
+ fi
fi
else
mylang="none"
И тут случайно, пролистывая какую-то рассылку, вижу обсуждение программы «man-db». Решил поглядеть, что это за чудо. Поискал в портежах и вот что нашел.
# eix sys-apps/man-db
* sys-apps/man-db
Available versions: (~)2.5.6 (~)2.5.7 {berkdb +gdbm nls}
Homepage: http://www.nongnu.org/man-db/
Description: a man replacement that utilizes berkdb instead of flat files
Не долго раздумывая, удаляю «man» и ставлю «man-db».
# emerge -C man
# emerge man-db -1
Проверяю результат. Вывод «man --help» вполне читаемый, да и вывод, например, «man mc» - тоже. И без всяких костылей.