Il pacchetto Man-DB contiene programmi per la ricerca e la visualizzazione di pagine man.
Devono essere apportati tre aggiustamenti ai sorgenti di Man-DB.
Il primo modifica la locazione delle pagine di manuale tradotte che vengono fornite con Man-DB, al fine di essere accessibili in entranbe le localizzazioni tradizionale e 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
La seconda modifica è una sostituzione sed per cancellare le righe «/usr/man» dentro il file man_db.conf per prevenire risultati ridondanti quando si usano programmi come whatis:
sed -i '/\t\/usr\/man/d' src/man_db.conf.in
La terza modifica per tener conto di programmi che Man-DB dovrebbe poter cercare al momento dell'esecuzione, ma che non sono stati ancora installati:
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
Il programma col fa parte del pacchetto Util-linux, lynx è un browser web testuale (vedere BLFS per le istruzioni d'installazione), vgrind converte i sorgenti di programma in input Groff, e grap è utile per la composizione grafica nei documenti in Groff. I programmi vgrind e grap non sono normalmente necessari per la visualizzazione della pagine manuale. Essi non fanno parte di LFS o BLFS, ma si dovrebbe poterli installare da se dopo aver terminato LFS, se lo si desidera.
Preparare Man-DB per la compilazione:
./configure --prefix=/usr --enable-mb-groff --disable-setuid
Significato delle opzioni di compilazione:
Questo dice al programma man di usare «ascii8» e «nippon» come dispositivi di Groff per la formattazione delle pagine di manuale non-ISO-8859-1.
Questo disabilita i'impostazione del programma man con setuid all'utente man.
Compilare il pacchetto:
make
Questo pacchetto non viene fornito di una suite di test.
Installare il pacchetto:
make install
Alcuni pacchetti forniscono pagine man UTF-8 che questa versione di man non può visualizzare. Il seguente script permetterà ad alcuni di questi di essere convertiti codifica che ci si aspetta, mostrata nella tabella di sotto. Man-DB si aspetta che le pagine di manuale siano nella codifica descritta nella tabella, e le convertirà ove necessario nella corrente codifica di localizzazione quando le visualizza, così che esse saranno visualizzate in entrambe le localizzazioni UTF-8 e tradizionale. Siccome questo script è inteso per un uso limitato durante la costruzione del sistema, per informazione, non si disturberà con il controllo degli errori, né si userà un nome file temporaneo non prevedibile.
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
Informazioni aggiuntive riguardanti la compressione delle pagine man e info può essere trovata nel libro BLFS presso http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/compressdoc.html.
Le distribuzioni Linux hanno differenti politiche riguardanti la codifica dei caratteri nelle quali sono memorizzate nel filesystem le pagine di manuale. Es., RedHat memorizza tutte le pagine manuale in UTF-8, mentre Debian usa codifiche specifiche della lingua (spesso a 8-bit). Questo porta all'incompatibilità dei pacchetti con pagine manuale progettate per le diverse distribuzioni.
LFS utilizza le stesse convenzioni di Debian. È stato scelto questo perché Man-DB non transcodifica le pagine man memorizzate in UTF-8. E, per i propri scopi, Man-DB è preferibile a Man per il suo funzionamento senza extra configurazioni in ogni localizzazione. Per ultimo, per ora, non ci sono implementazioni pienamente funzionanti con le convenzioni di RedHat. Groff di RedHat è conosciuto per mal-formattare i testi.
La relazione tra i codici di lingua e la codifica aspettata delle pagine di manuale è elencata qui sotto. Man-DB le converte automaticamente nella codifica locale durante la visualizzazione.
Tabella 6.1. Codifica prevista dei caratteri delle pagine manuale
Lingua (codice) | Codifica |
---|---|
Danese (da) | ISO-8859-1 |
Tedesco (de) | ISO-8859-1 |
Inglese (en) | ISO-8859-1 |
Spagnolo (es) | ISO-8859-1 |
Finlandese (fi) | ISO-8859-1 |
Francese (fr) | ISO-8859-1 |
Irlandese (ga) | ISO-8859-1 |
Galiziano (gl) | ISO-8859-1 |
Indonesiano (id) | ISO-8859-1 |
Islandese (is) | ISO-8859-1 |
Italiano (it) | ISO-8859-1 |
Olandese (nl) | ISO-8859-1 |
Norvegese (no) | ISO-8859-1 |
Portoghese (pt) | ISO-8859-1 |
Svedese (sv) | ISO-8859-1 |
Ceco (cs) | ISO-8859-2 |
Croato (hr) | ISO-8859-2 |
Ungherese (hu) | ISO-8859-2 |
Giapponese (ja) | EUC-JP |
Coreano (ko) | EUC-KR |
Polacco (pl) | ISO-8859-2 |
Russo (ru) | KOI8-R |
Slovacco (sk) | ISO-8859-2 |
Turco (tr) | ISO-8859-9 |
Le pagine Manuale in linguaggi non presenti nella lista non sono supportati. Il Norvegese non funziona per adesso per la transizione dalla localizzazione no_NO alla nb_NO, il Coreano non funziona per l'incompletezza di una patch di Groff.
Se la fonte distribuisce le pagine manuale nella stessa codifica come si aspetta Man-DB, le pagine manuale possono essere copiate in /usr/share/man/<language code>. Es., le pagine manuale Francesi (http://ccb.club.fr/man/man-fr-1.58.0.tar.bz2) possono essere installate con il seguente comando:
mkdir -p /usr/share/man/fr && cp -rv man? /usr/share/man/fr
Se la fonte distribuisce le pagine manuale in UTF-8 (es., «per RedHat») invece della codifica elencata nella tabella sopra, queste devono essere convertite da UTF-8 alla codifica elencata nella suddetta tabella per la loro installazione. Questo puo; essere ottenuto con convert-mans, es., le pagine manuale in Spagnolo (http://ditec.um.es/~piernas/manpages-es/man-pages-es-1.55.tar.bz2) possono essere installate attraverso i seguenti comandi:
mv man7/iso_8859-7.7{,X} convert-mans UTF-8 ISO-8859-1 man?/*.? mv man7/iso_8859-7.7{X,} make install
La necessità di escludere il file man7/iso_8859-7.7 dal processo di conversione è dovuto al fatto che questo è già in ISO-8859-1 è un bug del pacchetto man-pages-es-1.55. Le versioni future non dovrebbero richiedere questo aggiustamento.