aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/man.xml
blob: 737c0aeb93b3b1db77de67c4ab51f2677d551124 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>
<sect1 id="ch-system-man" role="wrap">
<title>Man-&man-version;</title>
<?dbhtml filename="man.html"?>

<indexterm zone="ch-system-man"><primary sortas="a-Man">Man</primary></indexterm>

<sect2 role="package"><title/>
<para>The Man package contains programs for finding and viewing man pages.</para>

<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem><seg>0.1 SBU</seg><seg>2.9 MB</seg></seglistitem>
</segmentedlist>

<segmentedlist>
<segtitle>&dependencies;</segtitle>
<seglistitem><seg>Bash, Binutils, Coreutils, Gawk, GCC,
Glibc, Grep, Make, and Sed</seg></seglistitem>
</segmentedlist>
</sect2>

<sect2 role="installation">
<title>Installation of Man</title>

<para>Two adjustments need to be made to the sources of Man.</para>

<para>The first is a <command>sed</command> substitution to add the
<parameter>-R</parameter> switch to the <envar>PAGER</envar>
variable so that escape sequences are properly handled by Less:</para>

<screen><userinput>sed -i 's@-is@&amp;R@g' configure</userinput></screen>

<para>The second is also a <command>sed</command> substitution to comment out the
<quote>MANPATH /usr/man</quote> line in the
<filename>man.conf</filename> file to prevent redundant results when
using programs such as <command>whatis</command>:</para>

<screen><userinput>sed -i 's@MANPATH./usr/man@#&amp;@g' src/man.conf.in</userinput></screen>

<para>Prepare Man for compilation:</para>

<screen><userinput>./configure -confdir=/etc</userinput></screen>

<para>The meaning of the configure options:</para>

<variablelist>
<varlistentry>
<term><parameter>-confdir=/etc</parameter></term>
<listitem><para>This tells the <command>man</command> program to look for the
<filename>man.conf</filename> configuration file in the <filename
class="directory">/etc</filename> directory.</para></listitem>
</varlistentry>
</variablelist>

<para>Compile the package:</para>

<screen><userinput>make</userinput></screen>

<para>Install the package:</para>

<screen><userinput>make install</userinput></screen>

<note><para>If you will be working on a terminal that does not support text
attributes such as color and bold, you can disable Select Graphic Rendition
(SGR) escape sequences by editing the <filename>man.conf</filename> file and
adding the <parameter>-c</parameter> option to the <envar>NROFF</envar>
variable. If you use multiple terminal types for one computer it may be better
to selectively add the <envar>GROFF_NO_SGR</envar> environment variable for the
terminals that do not support SGR.</para></note>

<beginpage/>

<para>If the character set of the locale uses 8-bit characters, search for the
line beginning with <quote>NROFF</quote> in <filename>/etc/man.conf</filename>,
and verify that it matches the following:</para>

<screen>NROFF  /usr/bin/nroff -Tlatin1 -mandoc</screen>

<para>Note that <quote>latin1</quote> should be used even if it is not
the character set of the locale. The reason is that, according to the
specification, <command>groff</command> has no means of typesetting
characters outside International Organization for Standards
(ISO) 8859-1 without some strange escape codes. When formatting man
pages, <command>groff</command> thinks that they are in the ISO 8859-1
encoding and this <parameter>-Tlatin1</parameter> switch tells
<command>groff</command> to use the same encoding for output. Since
<command>groff</command> does no recoding of input characters, the
formatted result is really in the same encoding as input, and therefore
it is usable as the input for a pager.</para>

<para>This does not solve the problem of a non-working
<command>man2dvi</command> program for localized man pages in
non-ISO 8859-1 locales. Also, it does not work with multibyte
character sets. The first problem does not currently have a solution.
The second issue is not of concern because the LFS installation does
not support multibyte character sets.</para>

<para>Additional information with regards to the compression of
man and info pages can be found in the BLFS book at
<ulink url="&blfs-root;view/cvs/postlfs/compressdoc.html"/>.</para>

</sect2>


<sect2 id="contents-man" role="content"><title>Contents of Man</title>

<segmentedlist>
<segtitle>Installed programs</segtitle>
<seglistitem><seg>apropos, makewhatis, man,
man2dvi, man2html, and whatis</seg></seglistitem>
</segmentedlist>

<variablelist><bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>

<varlistentry id="apropos">
<term><command>apropos</command></term>
<listitem>
<para>Searches the <command>whatis</command> database and displays the short descriptions
of system commands that contain a given string</para>
<indexterm zone="ch-system-man apropos"><primary sortas="b-apropos">apropos</primary></indexterm>
</listitem>
</varlistentry>

<varlistentry id="makewhatis">
<term><command>makewhatis</command></term>
<listitem>
<para>Builds the <command>whatis</command> database; it reads all the man pages
in the <envar>MANPATH</envar> and writes the name and a short description in the
<command>whatis</command> database for each page</para>
<indexterm zone="ch-system-man makewhatis"><primary sortas="b-makewhatis">makewhatis</primary></indexterm>
</listitem>
</varlistentry>

<varlistentry id="man">
<term><command>man</command></term>
<listitem>
<para>Formats and displays the requested on-line man page</para>
<indexterm zone="ch-system-man man"><primary sortas="b-man">man</primary></indexterm>
</listitem>
</varlistentry>

<varlistentry id="man2dvi">
<term><command>man2dvi</command></term>
<listitem>
<para>Converts a man page into dvi format</para>
<indexterm zone="ch-system-man man2dvi"><primary sortas="b-man2dvi">man2dvi</primary></indexterm>
</listitem>
</varlistentry>

<varlistentry id="man2html">
<term><command>man2html</command></term>
<listitem>
<para>Converts a man page into HTML</para>
<indexterm zone="ch-system-man man2html"><primary sortas="b-man2html">man2html</primary></indexterm>
</listitem>
</varlistentry>

<varlistentry id="whatis">
<term><command>whatis</command></term>
<listitem>
<para>Searches the <command>whatis</command> database and displays the short descriptions
of system commands that contain the given keyword as a separate
word</para>
<indexterm zone="ch-system-man whatis"><primary sortas="b-whatis">whatis</primary></indexterm>
</listitem>
</varlistentry>
</variablelist>

</sect2>

</sect1>