man-db: decorate username bin
[linux_from_scratch.git] / BOOK / chapter06 / man-db.xml
blob1ffdd556b751a709a6b73d8ddf17163c84e878ca
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4   <!ENTITY % general-entities SYSTEM "../general.ent">
5   %general-entities;
6 ]>
8 <sect1 id="ch-system-man-db" role="wrap">
9   <?dbhtml filename="man-db.html"?>
11   <sect1info condition="script">
12     <productname>man-db</productname>
13     <productnumber>&man-db-version;</productnumber>
14     <address>&man-db-url;</address>
15   </sect1info>
17   <title>Man-DB-&man-db-version;</title>
19   <indexterm zone="ch-system-man-db">
20     <primary sortas="a-Man-DB">Man-DB</primary>
21   </indexterm>
23   <sect2 role="package">
24     <title/>
26     <para>The Man-DB package contains programs for finding and viewing man
27     pages.</para>
29     <segmentedlist>
30       <segtitle>&buildtime;</segtitle>
31       <segtitle>&diskspace;</segtitle>
33       <seglistitem>
34         <seg>&man-db-ch6-sbu;</seg>
35         <seg>&man-db-ch6-du;</seg>
36       </seglistitem>
37     </segmentedlist>
39   </sect2>
41   <sect2 role="installation">
42     <title>Installation of Man-DB</title>
44     <para>Prepare Man-DB for compilation:</para>
46 <screen revision="systemd"><userinput remap="configure">sed -i '/find/s@/usr@@' init/systemd/man-db.service.in
48 ./configure --prefix=/usr                        \
49             --docdir=/usr/share/doc/man-db-&man-db-version; \
50             --sysconfdir=/etc                    \
51             --disable-setuid                     \
52             --enable-cache-owner=bin             \
53             --with-browser=/usr/bin/lynx         \
54             --with-vgrind=/usr/bin/vgrind        \
55             --with-grap=/usr/bin/grap</userinput></screen>
57 <screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr                        \
58             --docdir=/usr/share/doc/man-db-&man-db-version; \
59             --sysconfdir=/etc                    \
60             --disable-setuid                     \
61             --enable-cache-owner=bin             \
62             --with-browser=/usr/bin/lynx         \
63             --with-vgrind=/usr/bin/vgrind        \
64             --with-grap=/usr/bin/grap            \
65             --with-systemdtmpfilesdir=           \
66             --with-systemdsystemunitdir=</userinput></screen>
68     <variablelist>
69       <title>The meaning of the configure options:</title>
71       <varlistentry revision="systemd">
72         <term><command>sed -i '/find/s@/usr@@' init/systemd/man-db.service.in</command></term>
73         <listitem>
74           <para>This changes a harcoded path to the <command>find</command>
75           utility, which we install in
76           <filename class="directory">/bin</filename>.</para>
77         </listitem>
78       </varlistentry>
80       <varlistentry>
81         <term><parameter>--disable-setuid</parameter></term>
82         <listitem>
83           <para>This disables making the <command>man</command> program setuid
84           to user <systemitem class="username">man</systemitem>.</para>
85         </listitem>
86       </varlistentry>
88       <varlistentry>
89         <term><parameter>--enable-cache-owner=bin</parameter></term>
90         <listitem>
91           <para>This makes the system-wide cache files be owned by user
92           <systemitem class="username">bin</systemitem>.</para>
93         </listitem>
94       </varlistentry>
96       <varlistentry>
97         <term><parameter>--with-...</parameter></term>
98         <listitem>
99           <para>These three parameters are used to set some default programs.
100           <command>lynx</command> is a text-based web browser (see
101           BLFS for installation instructions), <command>vgrind</command>
102           converts program sources to Groff input, and <command>grap</command>
103           is useful for typesetting graphs in Groff documents. The
104           <command>vgrind</command> and <command>grap</command> programs are
105           not normally needed for viewing manual pages. They are not part of
106           LFS or BLFS, but you should be able to install them yourself after
107           finishing LFS if you wish to do so.</para>
108         </listitem>
109       </varlistentry>
111       <varlistentry revision="sysv">
112         <term><parameter>--with-systemd...</parameter></term>
113         <listitem>
114           <para>These parameters prevent installing unneeded systemd 
115           directories and files.</para>
116         </listitem>
117       </varlistentry>
119     </variablelist>
121     <para>Compile the package:</para>
123 <screen><userinput remap="make">make</userinput></screen>
125    <para>To test the results, issue:</para>
127 <screen><userinput remap="test">make check</userinput></screen>
129     <para>Install the package:</para>
131 <screen><userinput remap="install">make install</userinput></screen>
132 <!--
133     <para revision="sysv">Remove an unwanted directory used for service files
134     which would cause some BLFS packages to also install files there: </para>
136 <screen revision="sysv"><userinput remap="install">rm -rfv /lib/systemd</userinput></screen>
138     <para revision="systemd">Remove a reference to a non-existent user:</para>
140 <screen revision="systemd"><userinput remap="install">sed -i "s:man man:root root:g" /usr/lib/tmpfiles.d/man-db.conf</userinput></screen>
142   </sect2>
144   <sect2>
145     <title>Non-English Manual Pages in LFS</title>
147     <para>The following table shows the character set that Man-DB assumes
148     manual pages installed under
149     <filename class="directory">/usr/share/man/&lt;ll&gt;</filename> will be
150     encoded with.  In addition to this, Man-DB correctly determines if manual
151     pages installed in that directory are UTF-8 encoded.</para>
153     <!-- Origin: man-db-2.5.9/lib/encodings.c -->
154     <table>
155 <title>Expected character encoding of legacy 8-bit manual pages</title>
156       <?dbfo table-width="6in" ?>
158       <tgroup cols="4">
160         <colspec colnum="1" colwidth="1.5in"/>
161         <colspec colnum="2" colwidth="1in"/>
162         <colspec colnum="3" colwidth="2.5in"/>
163         <colspec colnum="4" colwidth="1in"/>
165         <thead>
166           <row>
167             <entry>Language (code)</entry>
168             <entry>Encoding</entry>
169             <entry>Language (code)</entry>
170             <entry>Encoding</entry>
171           </row>
172         </thead>
174         <tbody>
175           <row>
176             <entry>Danish (da)</entry>
177             <entry>ISO-8859-1</entry>
178             <entry>Croatian (hr)</entry>
179             <entry>ISO-8859-2</entry>
180           </row>
181           <row>
182             <entry>German (de)</entry>
183             <entry>ISO-8859-1</entry>
184             <entry>Hungarian (hu)</entry>
185             <entry>ISO-8859-2</entry>
186           </row>
187           <row>
188             <entry>English (en)</entry>
189             <entry>ISO-8859-1</entry>
190             <entry>Japanese (ja)</entry>
191             <entry>EUC-JP</entry>
192           </row>
193           <row>
194             <entry>Spanish (es)</entry>
195             <entry>ISO-8859-1</entry>
196             <entry>Korean (ko)</entry>
197             <entry>EUC-KR</entry>
198           </row>
199           <row>
200             <entry>Estonian (et)</entry>
201             <entry>ISO-8859-1</entry>
202             <entry>Lithuanian (lt)</entry>
203             <entry>ISO-8859-13</entry>
204           </row>
205           <row>
206             <entry>Finnish (fi)</entry>
207             <entry>ISO-8859-1</entry>
208             <entry>Latvian (lv)</entry>
209             <entry>ISO-8859-13</entry>
210           </row>
211           <row>
212             <entry>French (fr)</entry>
213             <entry>ISO-8859-1</entry>
214             <entry>Macedonian (mk)</entry>
215             <entry>ISO-8859-5</entry>
216           </row>
217           <row>
218             <entry>Irish (ga)</entry>
219             <entry>ISO-8859-1</entry>
220             <entry>Polish (pl)</entry>
221             <entry>ISO-8859-2</entry>
222           </row>
223           <row>
224             <entry>Galician (gl)</entry>
225             <entry>ISO-8859-1</entry>
226             <entry>Romanian (ro)</entry>
227             <entry>ISO-8859-2</entry>
228           </row>
229           <row>
230             <entry>Indonesian (id)</entry>
231             <entry>ISO-8859-1</entry>
232             <entry>Russian (ru)</entry>
233             <entry>KOI8-R</entry>
234           </row>
235           <row>
236             <entry>Icelandic (is)</entry>
237             <entry>ISO-8859-1</entry>
238             <entry>Slovak (sk)</entry>
239             <entry>ISO-8859-2</entry>
240           </row>
241           <row>
242             <entry>Italian (it)</entry>
243             <entry>ISO-8859-1</entry>
244             <entry>Slovenian (sl)</entry>
245             <entry>ISO-8859-2</entry>
246           </row>
247           <row>
248             <entry>Norwegian Bokmal (nb)</entry>
249             <entry>ISO-8859-1</entry>
250             <entry>Serbian Latin (sr@latin)</entry>
251             <entry>ISO-8859-2</entry>
252           </row>
253           <row>
254             <entry>Dutch (nl)</entry>
255             <entry>ISO-8859-1</entry>
256             <entry>Serbian (sr)</entry>
257             <entry>ISO-8859-5</entry>
258           </row>
259           <row>
260             <entry>Norwegian Nynorsk (nn)</entry>
261             <entry>ISO-8859-1</entry>
262             <entry>Turkish (tr)</entry>
263             <entry>ISO-8859-9</entry>
264           </row>
265           <row>
266             <entry>Norwegian (no)</entry>
267             <entry>ISO-8859-1</entry>
268             <entry>Ukrainian (uk)</entry>
269             <entry>KOI8-U</entry>
270           </row>
271           <row>
272             <entry>Portuguese (pt)</entry>
273             <entry>ISO-8859-1</entry>
274             <entry>Vietnamese (vi)</entry>
275             <entry>TCVN5712-1</entry>
276           </row>
277           <row>
278             <entry>Swedish (sv)</entry>
279             <entry>ISO-8859-1</entry>
280             <entry>Simplified Chinese (zh_CN)</entry>
281             <entry>GBK</entry>
282           </row>
283           <row>
284             <entry>Belarusian (be)</entry>
285             <entry>CP1251</entry>
286             <entry>Simplified Chinese, Singapore (zh_SG)</entry>
287             <entry>GBK</entry>
288           </row>
289           <row>
290             <entry>Bulgarian (bg)</entry>
291             <entry>CP1251</entry>
292             <entry>Traditional Chinese, Hong Kong (zh_HK)</entry>
293             <entry>BIG5HKSCS</entry>
294           </row>
295           <row>
296             <entry>Czech (cs)</entry>
297             <entry>ISO-8859-2</entry>
298             <entry>Traditional Chinese (zh_TW)</entry>
299             <entry>BIG5</entry>
300           </row>
301           <row>
302             <entry>Greek (el)</entry>
303             <entry>ISO-8859-7</entry>
304             <entry></entry>
305             <entry></entry>
306           </row>
308         </tbody>
310       </tgroup>
312     </table>
314     <note>
315       <para>Manual pages in languages not in the list are not supported.</para>
316     </note>
318   </sect2>
320   <sect2 id="contents-man-db" role="content">
321     <title>Contents of Man-DB</title>
323     <segmentedlist>
324       <segtitle>Installed programs</segtitle>
325       <segtitle>Installed libraries</segtitle>
326       <segtitle>Installed directories</segtitle>
328       <seglistitem>
329         <seg>accessdb, apropos (link to whatis), catman, lexgrog, man, mandb,
330         manpath, and whatis</seg>
331         <seg>libman.so and libmandb.so (both in /usr/lib/man-db)</seg>
332         <seg>/usr/lib/man-db, /usr/libexec/man-db,
333         and /usr/share/doc/man-db-&man-db-version;</seg>
334       </seglistitem>
335     </segmentedlist>
337     <variablelist>
338       <bridgehead renderas="sect3">Short Descriptions</bridgehead>
339       <?dbfo list-presentation="list"?>
340       <?dbhtml list-presentation="table"?>
342       <varlistentry id="accessdb">
343         <term><command>accessdb</command></term>
344         <listitem>
345           <para>Dumps the <command>whatis</command> database contents in
346           human-readable form</para>
347           <indexterm zone="ch-system-man-db accessdb">
348             <primary sortas="b-accessdb">accessdb</primary>
349           </indexterm>
350         </listitem>
351       </varlistentry>
353       <varlistentry id="apropos">
354         <term><command>apropos</command></term>
355         <listitem>
356           <para>Searches the <command>whatis</command> database and displays
357           the short descriptions of system commands that contain a given
358           string</para>
359           <indexterm zone="ch-system-man-db apropos">
360             <primary sortas="b-apropos">apropos</primary>
361           </indexterm>
362         </listitem>
363       </varlistentry>
365       <varlistentry id="catman">
366         <term><command>catman</command></term>
367         <listitem>
368           <para>Creates or updates the pre-formatted manual pages</para>
369           <indexterm zone="ch-system-man-db catman">
370             <primary sortas="b-catman">catman</primary>
371           </indexterm>
372         </listitem>
373       </varlistentry>
375       <varlistentry id="lexgrog">
376         <term><command>lexgrog</command></term>
377         <listitem>
378           <para>Displays one-line summary information about a given manual
379           page</para>
380           <indexterm zone="ch-system-man-db lexgrog">
381             <primary sortas="b-lexgrog">lexgrog</primary>
382           </indexterm>
383         </listitem>
384       </varlistentry>
386       <varlistentry id="man">
387         <term><command>man</command></term>
388         <listitem>
389           <para>Formats and displays the requested manual page</para>
390           <indexterm zone="ch-system-man-db man">
391             <primary sortas="b-man">man</primary>
392           </indexterm>
393         </listitem>
394       </varlistentry>
396       <varlistentry id="mandb">
397         <term><command>mandb</command></term>
398         <listitem>
399           <para>Creates or updates the <command>whatis</command> database</para>
400           <indexterm zone="ch-system-man-db mandb">
401             <primary sortas="b-mandb">mandb</primary>
402           </indexterm>
403         </listitem>
404       </varlistentry>
406       <varlistentry id="manpath">
407         <term><command>manpath</command></term>
408         <listitem>
409           <para>Displays the contents of $MANPATH or (if $MANPATH is not set)
410           a suitable search path based on the settings in man.conf and the
411           user's environment</para>
412           <indexterm zone="ch-system-man-db manpath">
413             <primary sortas="b-manpath">manpath</primary>
414           </indexterm>
415         </listitem>
416       </varlistentry>
418       <varlistentry id="whatis">
419         <term><command>whatis</command></term>
420         <listitem>
421           <para>Searches the <command>whatis</command> database and displays
422           the short descriptions of system commands that contain the given
423           keyword as a separate word</para>
424           <indexterm zone="ch-system-man-db whatis">
425             <primary sortas="b-whatis">whatis</primary>
426           </indexterm>
427         </listitem>
428       </varlistentry>
430       <varlistentry id="libman">
431         <term><filename class="libraryfile">libman</filename></term>
432         <listitem>
433           <para>Contains run-time support for <command>man</command></para>
434           <indexterm zone="ch-system-man-db libman">
435             <primary sortas="c-libman">libman</primary>
436           </indexterm>
437         </listitem>
438       </varlistentry>
440       <varlistentry id="libmandb">
441         <term><filename class="libraryfile">libmandb</filename></term>
442         <listitem>
443           <para>Contains run-time support for <command>man</command></para>
444           <indexterm zone="ch-system-man-db libmandb">
445             <primary sortas="c-libmandb">libmandb</primary>
446           </indexterm>
447         </listitem>
448       </varlistentry>
450     </variablelist>
452   </sect2>
454 </sect1>