source: prologue/why.xml@ 5a58876

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 5a58876 was 5a58876, checked in by Bruce Dubbs <bdubbs@…>, 13 years ago

Grammar updates and a minor script touch up.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9598 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 15.0 KB
Line 
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]>
7
8<sect1 id="pre-why">
9 <?dbhtml filename="package-choices.html"?>
10
11 <title>Rationale for Packages in the Book</title>
12
13 <para>As stated earlier, the goal of LFS is to build a complete and usable
14 foundation-level system. This includes all packages needed to replicate
15 itself while providing a relatively minimal base from which to customize
16 a more complete system based on the choices of the user. This does not
17 mean that LFS is the smallest system possible. Several important packages
18 are included that are not strictly required. The lists below document the
19 rationale for each package in the book.</para>
20
21 <itemizedlist>
22
23 <listitem>
24 <para>Autoconf</para>
25
26 <para>This package contains programs for producing shell scripts that
27 can automatically configure source code from a developer's
28 template. It is often needed to rebuild a package after updates
29 to the build procedures.</para>
30 </listitem>
31
32 <listitem>
33 <para>Automake</para>
34
35 <para>This package contains programs for generating Make files from
36 a template. It is often needed to rebuild a package after updates
37 to the build procedures.</para>
38 </listitem>
39
40 <listitem>
41 <para>Bash</para>
42
43 <para>This package satisfies an LSB core requirement to provide
44 a Bourne Shell interface to the system. It was chosen over
45 other shell packages because of its common usage and extensive
46 capabilities beyond basic shell functions.</para>
47 </listitem>
48
49 <listitem>
50 <para>Binutils</para>
51
52 <para>This package contains a linker, an assembler, and other
53 tools for handling object files. The programs in this package are
54 needed to compile most of the packages in an LFS system and beyond.</para>
55 </listitem>
56
57 <listitem>
58 <para>Bison</para>
59
60 <para>This package contains the GNU version of yacc (Yet Another
61 Compiler Compiler) needed to build several other LFS programs.</para>
62 </listitem>
63
64 <listitem>
65 <para>Bzip2</para>
66
67 <para>This package contains programs for compressing and decompressing
68 files. It is required to decompress many LFS packages.</para>
69 </listitem>
70
71 <listitem>
72 <para>Coreutils</para>
73
74 <para>This package contains a number of essential programs for viewing
75 and manipulating files and directories. These programs are needed for
76 command line file management, and are necessary for the installation
77 procedures of every package in LFS.</para>
78 </listitem>
79
80 <listitem>
81 <para>DejaGNU</para>
82
83 <para>This package contains a framework for testing other programs.
84 It is only installed in the temporary toolchain.</para>
85 </listitem>
86
87 <listitem>
88 <para>Diffutils</para>
89
90 <para>This package contains programs that show the differences
91 between files or directories. These programs can be used to create
92 patches, and are also used in many packages' build procedures.</para>
93 </listitem>
94
95 <listitem>
96 <para>Expect</para>
97
98 <para>This package contains a program for carrying out scripted
99 dialogues with other interactive programs. It is commonly used
100 for testing other packages. It is only installed in the temporary
101 toolchain.</para>
102 </listitem>
103
104 <listitem>
105 <para>E2fsprogs</para>
106
107 <para>This package contains the utilities for handling the ext2, ext3
108 and ext4 file systems. These are the most common and thoroughly
109 tested file systems that Linux supports.</para>
110 </listitem>
111
112 <listitem>
113 <para>File</para>
114
115 <para>This package contains a utility for determining the type of a
116 given file or files. A few packages need it to build.</para>
117 </listitem>
118
119 <listitem>
120 <para>Findutils</para>
121
122 <para>This package contains programs to find files in a file system.
123 It is used in many packages' build scripts.</para>
124 </listitem>
125
126 <listitem>
127 <para>Flex</para>
128
129 <para>This package contains a utility for generating programs that
130 recognize patterns in text. It is the GNU version of the lex
131 (lexical analyzer) program. It is required to build several
132 LFS packages.</para>
133 </listitem>
134
135 <listitem>
136 <para>Gawk</para>
137
138 <para>This package contains programs for manipulating text files.
139 It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
140 many other packages' build scripts.</para>
141 </listitem>
142
143 <listitem>
144 <para>Gcc</para>
145
146 <para>This package is the Gnu Compiler Collection. It contains the
147 C and C++ compilers as well as several others not built by LFS.
148 </para>
149 </listitem>
150
151 <listitem>
152 <para>GDBM</para>
153
154 <para>This package contains the GNU Database Manager library. It
155 is used by one other LFS package, Man-DB.</para>
156 </listitem>
157
158 <listitem>
159 <para>Gettext</para>
160
161 <para>This package contains utilities and libraries for
162 internationalization and localization of numerous packages.</para>
163 </listitem>
164
165 <listitem>
166 <para>Glib</para>
167
168 <para>This package contains low-level core library functions for things
169 such as event loops and threading. It is used by one other LFS package,
170 Pkg-config.</para>
171 </listitem>
172
173 <listitem>
174 <para>Glibc</para>
175
176 <para>This package contains the main C library. Linux programs would
177 not run without it.</para>
178 </listitem>
179
180 <listitem>
181 <para>GMP</para>
182
183 <para>This package contains math libraries that provide useful functions
184 for arbitrary precision arithmetic. It is required to build Gcc.</para>
185 </listitem>
186
187 <listitem>
188 <para>Grep</para>
189
190 <para>This package contains programs for searching through files. These
191 programs are used by most packages' build scripts.</para>
192 </listitem>
193
194 <listitem>
195 <para>Groff</para>
196
197 <para>This package contains programs for processing and formatting text.
198 One important function of these programs is to format man pages.</para>
199 </listitem>
200
201 <listitem>
202 <para>GRUB</para>
203
204 <para>This package is the Grand Unified Boot Loader. It is one
205 of several boot loaders available, but is the most flexible.
206 </para>
207 </listitem>
208
209 <listitem>
210 <para>Gzip</para>
211
212 <para>This package contains programs for compressing and
213 decompressing files. It is needed to decompress many packages in LFS
214 and beyond.</para>
215 </listitem>
216
217 <listitem>
218 <para>Iana-etc</para>
219
220 <para>This package provides data for network services and protocols.
221 It is needed to enable proper networking capabilities.</para>
222 </listitem>
223
224 <listitem>
225 <para>Inetutils</para>
226
227 <para>This package contains programs for basic network
228 administration.</para>
229 </listitem>
230
231 <listitem>
232 <para>IProute2</para>
233
234 <para>This package contains programs for basic and advanced IPv4 and
235 IPv6 networking. It was chosen over the other common network
236 tools package (net-tools) for its IPv6 capabilities. </para>
237 </listitem>
238
239 <listitem>
240 <para>Kbd</para>
241
242 <para>This package contains key-table files, keyboard utilities
243 for non-US keyboards, and a number of console fonts.</para>
244 </listitem>
245
246 <listitem>
247 <para>Less</para>
248
249 <para>This package contains a very nice text file viewer that
250 allows scrolling up or down when viewing a file. It is also used by
251 Man-DB for viewing manpages.</para>
252 </listitem>
253
254 <listitem>
255 <para>Libtool</para>
256
257 <para>This package contains the GNU generic library support
258 script. It wraps the complexity of using shared libraries in a
259 consistent, portable interface. It is needed by the test
260 suites in other LFS packages.</para>
261 </listitem>
262
263 <listitem>
264 <para>Linux Kernel</para>
265
266 <para>This package is the Operating System. It is the Linux in
267 the GNU/Linux environment.</para>
268 </listitem>
269
270 <listitem>
271 <para>M4</para>
272
273 <para>This package contains a general text macro processor useful
274 as a build tool for other programs.</para>
275 </listitem>
276
277 <listitem>
278 <para>Make</para>
279
280 <para>This package contains a program for directing the building
281 of packages. It is required by almost every package in LFS.</para>
282 </listitem>
283
284 <listitem>
285 <para>Man-DB</para>
286
287 <para>This package contains programs for finding and viewing man pages.
288 It was chosen instead of the <application>man</application> package
289 due to superior internationalization capabilities. It supplies
290 the man program.</para>
291 </listitem>
292
293 <listitem>
294 <para>Man-pages</para>
295
296 <para>This package contains the actual contents of the basic
297 Linux man pages.</para>
298 </listitem>
299
300 <listitem>
301 <para>Module-Init-Tools</para>
302
303 <para>This package contains programs needed to administer Linux
304 kernel modules.</para>
305 </listitem>
306
307 <listitem>
308 <para>MPC</para>
309
310 <para>This package contains functions for the arithmetic of complex
311 numbers. It is required by Gcc.</para>
312 </listitem>
313
314 <listitem>
315 <para>MPFR</para>
316
317 <para>This package contains functions for multiple precision
318 arithmetic. It is required by Gcc.</para>
319 </listitem>
320
321 <listitem>
322 <para>Ncurses</para>
323
324 <para>This package contains libraries for terminal-independent
325 handling of character screens. It is often used to provide
326 cursor control for a menuing system. It is needed by a number of
327 packages in LFS.</para>
328 </listitem>
329
330 <listitem>
331 <para>Patch</para>
332
333 <para>This package contains a program for modifying or creating files by
334 applying a <emphasis>patch</emphasis> file typically created
335 by the <application>diff</application> program. It is needed by
336 the build procedure for several LFS packages.</para>
337 </listitem>
338
339 <listitem>
340 <para>PCRE</para>
341
342 <para>This package provides a library that can be used to implement
343 regular expression pattern matching using the same syntax and semantics
344 as Perl 5. It is a mandatory dependency of Glib, and can also be used
345 by Grep.</para>
346 </listitem>
347
348 <listitem>
349 <para>Perl</para>
350
351 <para>This package is an interpreter for the runtime language
352 PERL. It is needed for the installation and test suites of several LFS
353 packages.</para>
354 </listitem>
355
356 <listitem>
357 <para>Pkg-config</para>
358
359 <para>This package contains a tool for passing the include path
360 and/or library paths to build tools during the configure and make
361 processes. It is needed by many LFS packages.</para>
362 </listitem>
363
364 <listitem>
365 <para>Procps</para>
366
367 <para>This package contains programs for monitoring processes. These
368 programs are useful for system administration, and are also used by
369 the LFS Bootscripts.</para>
370 </listitem>
371
372 <listitem>
373 <para>Psmisc</para>
374
375 <para>This package contains programs for displaying information
376 about running processes. These programs are useful for system
377 administration.</para>
378 </listitem>
379
380 <listitem>
381 <para>Readline</para>
382
383 <para>This package is a set of libraries that offers command-line
384 editing and history capabilities. It is used by Bash.</para>
385 </listitem>
386
387 <listitem>
388 <para>Sed</para>
389
390 <para>This package allows editing of text without opening it in a
391 text editor. It is also needed by most LFS packages' configure
392 scripts.</para>
393 </listitem>
394
395 <listitem>
396 <para>Shadow</para>
397
398 <para>This package contains programs for handling passwords
399 in a secure way.</para>
400 </listitem>
401
402 <listitem>
403 <para>Sysklogd</para>
404
405 <para>This package contains programs for logging system messages,
406 such as those given by the kernel or daemon processes when unusual
407 events occur.</para>
408 </listitem>
409
410 <listitem>
411 <para>Sysvinit</para>
412
413 <para>This package provides the <application>init</application>
414 program, which is the parent of all other processes on the Linux
415 system. </para>
416 </listitem>
417
418 <listitem>
419 <para>Tar</para>
420
421 <para>This package provides archiving and extraction capabilities
422 of virtually all packages used in LFS.</para>
423 </listitem>
424
425 <listitem>
426 <para>Tcl</para>
427
428 <para>This package contains the Tool Command Language used
429 in many test suites in LFS packages. It is only installed in
430 the temporary toolchain.</para>
431 </listitem>
432
433 <listitem>
434 <para>Texinfo</para>
435
436 <para>This package contains programs for reading, writing, and
437 converting info pages. It is used in the installation
438 procedures of many LFS packages.</para>
439 </listitem>
440
441 <listitem>
442 <para>Udev</para>
443
444 <para>This package contains programs for dynamic creation of
445 device nodes. It is an alternative to creating thousands of
446 static devices in the /dev directory.</para>
447 </listitem>
448
449 <listitem>
450 <para>Util-linux</para>
451
452 <para>This package contains miscellaneous utility programs.
453 Among them are utilities for handling file systems, consoles,
454 partitions, and messages.</para>
455 </listitem>
456
457 <listitem>
458 <para>Vim</para>
459
460 <para>This package contains an editor. It was chosen because of its
461 compatibility with the classic vi editor and its huge number of powerful
462 capabilities. An editor is a very personal choice for
463 many users and any other editor could be substituted if desired.</para>
464 </listitem>
465
466 <listitem>
467 <para>XZ Utils</para>
468
469 <para>This package contains programs for compressing and decompressing
470 files. It provides the highest compression generally available
471 and is useful for decompressing packages XZ or LZMA format.</para>
472 </listitem>
473
474 <listitem>
475 <para>Zlib</para>
476
477 <para>This package contains compression and decompression routines
478 used by some programs.</para>
479 </listitem>
480
481 </itemizedlist>
482
483</sect1>
484
Note: See TracBrowser for help on using the repository browser.