6.45.1. Instalación de Man-DB
Es necesario hacer cuatro ajustes a las fuentes de Man-DB.
El primero cambia la localización de las páginas de manual
traducidas que vienen con Man-DB, para poder acceder a ellas tanto
con locales tradicionales como UTF-8:
mv man/de{_DE.88591,}
mv man/es{_ES.88591,}
mv man/it{_IT.88591,}
mv man/ja{_JP.eucJP,}
sed -i 's,\*_\*,??,' man/Makefile.in
El segundo cambio es una sustitución sed para borrar las líneas
“/usr/man” y
“/usr/local/man” del fichero
man_db.conf
para evitar resultados
duplicados cuando se utilizan programas como whatis:
sed -i -e '\%\t/usr/man%d' -e '\%\t/usr/local/man%d' src/man_db.conf.in
El tercer cambio tiene en cuenta programas que Man-DB debería ser
capaz de encontrar en tiempo de ejecución, pero que no han sido
instalados aún:
cat >> include/manconfig.h.in << "EOF"
#define WEB_BROWSER "exec /usr/bin/lynx"
#define COL "/usr/bin/col"
#define VGRIND "/usr/bin/vgrind"
#define GRAP "/usr/bin/grap"
EOF
El programa col es
parte del paquete Util-linux, lynx es un navegador web en modo
texto (mira en BLFS las instrucciones de instalación), vgrind convierte fuentes de
programas a entrada Groff, y grap es útil para la inclusión de
gráficos en documentos Groff. Los programas vgrind y grap no son necesarios
normalmente para ver páginas de manual. No son parte de LFS o BLFS,
pero deberías ser capaz de instalarlos por ti mismo tras finalizar
el LFS si así lo deseas.
Por último, parchea las fuentes para corregir errores en la salida
si la página de manual es abortada prematuramente mediante la
pulsación de la tecla 'q':
patch -Np1 -i ../man-db-2.4.4-fixes-1.patch
Prepara Man-DB para su compilación:
./configure --prefix=/usr --enable-mb-groff --disable-setuid
Significado de las opciones de configure:
-
--enable-mb-groff
-
Esto le indica al programa man que utilice los
dispositivos “ascii8”
y “nippon” de Groff
para formatear páginas de manual que no estén en ISO-8859-1.
-
--disable-setuid
-
Esto desactiva que el programa man se instale con setuid
al usuario man
.
Compila el paquete:
make
Este paquete no incluye un banco de pruebas.
Instala el paquete:
make install
Algunos paquetes proporcionan páginas de manual en UTF-8 que esta
versión de man no
puede mostrar. El siguiente guión permitirá que algunas de ellas
sean convertidas a las codificaciones esperadas que se listan
abajo. Man-DB espera que las páginas de manual estén en las
codificaciones de la tabla, y las convertirá según sea necesario a
la codificación real de la locale cuando las muestre, por lo que
las mostrará tanto en ocales UTF-8 como en locales tradicionales.
Debido a que este guión está pensado para un uso limitado durante
la construcción del sistema, para datos públicos, no nos precupamos
por la comprobación de errores ni usamos ficheros temporales con
nombres no predecibles:
cat >> convert-mans << "EOF"
#!/bin/sh -e
FROM="$1"
TO="$2"
shift ; shift
while [ $# -gt 0 ]
do
FILE="$1"
shift
iconv -f "$FROM" -t "$TO" "$FILE" >.tmp.iconv
mv .tmp.iconv "$FILE"
done
EOF
install -m755 convert-mans /usr/bin
Información adicional sobre la compresión de páginas de manual e
info se puede encontrar en el libro BLFS en
http://www.linuxfromscratch.org/blfs/view/stable/postlfs/compressdoc.html.
6.45.2. Páginas de manual no inglesas en LFS
Las distribuciones Linux tienen diferentes políticas en cuanto a la
codificación de caractéres en los que las páginas de manual se
almacenan en el sistema de ficheros. Por ejemplo, RedHat almacena
todas las páginas de manual en UTF-8, mientras que Debian utiliza
la codificación específica del idioma (generalmente en 8 bits).
Esto produce incompatibilidad entre los paquetes con paginas de
manual diseñadas por diferentes distribuciones.
LFS utiliza la misma política que Debian. Esta fué elegida porque
Man-DB no entiende las páginas almacenadas en UTF-8. Y, para
nuestros propósitos, Man-DB es preferible a Man pues funciona sin
configuraciones adicionales para ninguna locale. Por último, y a
día de hoy, no existe una implementación con funcionalidad completa
de la política de RedHat. Se sabe que el groff the RedHat formatea mal el
texto.
Tabla 6.1. Codificación asumida de caracteres de las páginas
de manual
Idioma (código)
|
Codificación
|
Danés (da)
|
ISO-8859-1
|
Alemán (de)
|
ISO-8859-1
|
Inglés (en)
|
ISO-8859-1
|
Español (es)
|
ISO-8859-1
|
Finlandés (fi)
|
ISO-8859-1
|
Francés (fr)
|
ISO-8859-1
|
Irlandés (ga)
|
ISO-8859-1
|
Gallego (gl)
|
ISO-8859-1
|
Indonesio (id)
|
ISO-8859-1
|
Islandés (is)
|
ISO-8859-1
|
Italiano (it)
|
ISO-8859-1
|
Holandés (nl)
|
ISO-8859-1
|
Noruego (no)
|
ISO-8859-1
|
Portugés (pt)
|
ISO-8859-1
|
Sueco (sv)
|
ISO-8859-1
|
Checo (cs)
|
ISO-8859-2
|
Croata (hr)
|
ISO-8859-2
|
Húngaro (hu)
|
ISO-8859-2
|
Japonés (ja)
|
EUC-JP
|
Coreano (ko)
|
EUC-KR
|
Polaco (pl)
|
ISO-8859-2
|
Ruso (ru)
|
KOI8-R
|
Slovaco (sk)
|
ISO-8859-2
|
Turko (tr)
|
ISO-8859-9
|
Nota
Las páginas de manual en idiomas que no se encuentren en la lista
no estás soportadas. Noruego no funciona ahora debido a la
transición de la locale no_NO a nb_NO, y el Coreano no es
funcional debido a que el parche de Groff es incompleto.
Si el desarrollador distribuye las páginas de manual con la misma
codificación que Man-DB espera, estas pueden copiarse a
/usr/share/man/<código del idioma>
.
Por ejemplo, las páginas de manual en Francés (http://ccb.club.fr/man/man-fr-1.58.0.tar.bz2)
pueden instalarse con el siguiente comando:
mkdir -p /usr/share/man/fr
cp -rv man? /usr/share/man/fr
Si el desarrollador distribuye las páginas de manual en UTF-8 (por
ejemplo, “para RedHat”) en
vez de en la codificación listada en la tabla anterior, tendrán que
convertirse de UTF-8 a la codificación listada antes de
instalarlas. Esto puede hacerse con convert-mans, por ejemplo, las
páginas de manual en Español (http://ditec.um.es/~piernas/manpages-es/man-pages-es-1.55.tar.bz2)
pueden instalarse con los siguientes comandos:
mv man7/iso_8859-7.7{,X}
convert-mans UTF-8 ISO-8859-1 man?/*.?
mv man7/iso_8859-7.7{X,}
make install
Nota
La necesidad de excluir el fichero man7/iso_8859-7.7
del proceso de conversión
debido a que ya está en ISO-8859-1es por un error en el
empaquetado de man-pages-es-1.55. Futuras versiones no deberían
necesitar este apaño.