6.45. Man-DB-2.4.3

Il pacchetto Man-DB contiene programmi per la ricerca e la visualizzazione di pagine man.

Tempo di costruzione approssimativo: 0.2 SBU
Spazio necessario su disco: 9 MB

6.45.1. Installazione di Man-DB

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:

--enable-mb-groff

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.

--disable-setuid

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.

6.45.2. Pagine Manuale di LFS non in Inglese

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
[Nota]

Nota

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
[Nota]

Nota

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.

6.45.3. Contenuti di Man-DB

Programmi installati: accessdb, apropos, catman, convert-mans,lexgrog, man, mandb, manpath, whatis e zsoelim

Brevi Descrizioni

accessdb

Esegue un dump del contenuto del database di whatis in una forma leggibile

apropos

Ricerca nel database di whatis e visualizza le brevi descrizioni dei comandi di sistema che contengono la stringa fornita

catman

Crea o aggiorna le pagine di manuale pre-formattate

convert-mans

Riformatta le pagine di manuale così che Man-DB possa visualizzarle

lexgrog

Visualizza in una-riga informazioni sommarie circa una data pagina di manuale

man

Formatta e visualizza la richiesta pagina di manuale

mandb

Crea o aggiorna il database di whatis

manpath

Visualizza il contenuto di $MANPATH o (se $MANPATH non è impostata) esegue un appropriata ricerca basata sui path della configurazione in man.conf e sull'ambiente dell'utente

whatis

Ricerca nel database di whatis e visualizza le brevi descrizioni dei comandi di sistema che contengono la data parola chiave come una parola separata

zsoelim

Legge file e sostituisce righe di file dalla forma file .so con i contenuti del suddetto file