source: prologue/why.xml@ 0bf53444

7.7-systemd 7.8-systemd 7.9-systemd
Last change on this file since 0bf53444 was 0bf53444, checked in by Krejzi <krejzi@…>, 9 years ago

Fix backslash alignments and a minor text update.

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/systemd@10867 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 16.2 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>Acl</para>
25
26 <para>This package contains utilities to administer Access
27 Control Lists, which are used to define more fine-grained
28 discretionary access rights for files and directories.
29 </para>
30 </listitem>
31
32 <listitem>
33 <para>Attr</para>
34
35 <para>This package contains programs for administering
36 extended attributes on filesystem objects.
37 </para>
38 </listitem>
39
40 <listitem>
41 <para>Autoconf</para>
42
43 <para>This package contains programs for producing shell scripts that
44 can automatically configure source code from a developer's
45 template. It is often needed to rebuild a package after updates
46 to the build procedures.</para>
47 </listitem>
48
49 <listitem>
50 <para>Automake</para>
51
52 <para>This package contains programs for generating Make files from
53 a template. It is often needed to rebuild a package after updates
54 to the build procedures.</para>
55 </listitem>
56
57 <listitem>
58 <para>Bash</para>
59
60 <para>This package satisfies an LSB core requirement to provide
61 a Bourne Shell interface to the system. It was chosen over
62 other shell packages because of its common usage and extensive
63 capabilities beyond basic shell functions.</para>
64 </listitem>
65
66 <listitem>
67 <para>Bc</para>
68
69 <para>This package provides an arbitrary precision numeric processing language.
70 It satisfies a requirement needed when building the Linux kernel.</para>
71 </listitem>
72
73 <listitem>
74 <para>Binutils</para>
75
76 <para>This package contains a linker, an assembler, and other
77 tools for handling object files. The programs in this package are
78 needed to compile most of the packages in an LFS system and beyond.</para>
79 </listitem>
80
81 <listitem>
82 <para>Bison</para>
83
84 <para>This package contains the GNU version of yacc (Yet Another
85 Compiler Compiler) needed to build several other LFS programs.</para>
86 </listitem>
87
88 <listitem>
89 <para>Bzip2</para>
90
91 <para>This package contains programs for compressing and decompressing
92 files. It is required to decompress many LFS packages.</para>
93 </listitem>
94
95 <listitem>
96 <para>Check</para>
97
98 <para>This package contains a test harness for other programs.
99 It is only installed in the temporary toolchain.</para>
100 </listitem>
101
102 <listitem>
103 <para>Coreutils</para>
104
105 <para>This package contains a number of essential programs for viewing
106 and manipulating files and directories. These programs are needed for
107 command line file management, and are necessary for the installation
108 procedures of every package in LFS.</para>
109 </listitem>
110
111 <listitem>
112 <para>D-Bus</para>
113
114 <para>This package contains programs to implement a message bus system,
115 which a simple way for applications to talk to one another. It is
116 required by systemd.
117 </para>
118 </listitem>
119
120 <listitem>
121 <para>DejaGNU</para>
122
123 <para>This package contains a framework for testing other programs.
124 It is only installed in the temporary toolchain.</para>
125 </listitem>
126
127 <listitem>
128 <para>Diffutils</para>
129
130 <para>This package contains programs that show the differences
131 between files or directories. These programs can be used to create
132 patches, and are also used in many packages' build procedures.</para>
133 </listitem>
134
135 <listitem>
136 <para>E2fsprogs</para>
137
138 <para>This package contains the utilities for handling the ext2, ext3
139 and ext4 file systems. These are the most common and thoroughly
140 tested file systems that Linux supports.</para>
141 </listitem>
142
143 <listitem>
144 <para>Expat</para>
145
146 <para>This package contains a relatively small XML parsing library. It
147 is required by the XML::Parser Perl module.</para>
148 </listitem>
149
150 <listitem>
151 <para>Expect</para>
152
153 <para>This package contains a program for carrying out scripted
154 dialogues with other interactive programs. It is commonly used
155 for testing other packages. It is only installed in the temporary
156 toolchain.</para>
157 </listitem>
158
159 <listitem>
160 <para>File</para>
161
162 <para>This package contains a utility for determining the type of a
163 given file or files. A few packages need it to build.</para>
164 </listitem>
165
166 <listitem>
167 <para>Findutils</para>
168
169 <para>This package contains programs to find files in a file system.
170 It is used in many packages' build scripts.</para>
171 </listitem>
172
173 <listitem>
174 <para>Flex</para>
175
176 <para>This package contains a utility for generating programs that
177 recognize patterns in text. It is the GNU version of the lex
178 (lexical analyzer) program. It is required to build several
179 LFS packages.</para>
180 </listitem>
181
182 <listitem>
183 <para>Gawk</para>
184
185 <para>This package contains programs for manipulating text files.
186 It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
187 many other packages' build scripts.</para>
188 </listitem>
189
190 <listitem>
191 <para>Gcc</para>
192
193 <para>This package is the Gnu Compiler Collection. It contains the
194 C and C++ compilers as well as several others not built by LFS.
195 </para>
196 </listitem>
197
198 <listitem>
199 <para>GDBM</para>
200
201 <para>This package contains the GNU Database Manager library. It
202 is used by one other LFS package, Man-DB.</para>
203 </listitem>
204
205 <listitem>
206 <para>Gettext</para>
207
208 <para>This package contains utilities and libraries for
209 internationalization and localization of numerous packages.</para>
210 </listitem>
211
212 <listitem>
213 <para>Glibc</para>
214
215 <para>This package contains the main C library. Linux programs would
216 not run without it.</para>
217 </listitem>
218
219 <listitem>
220 <para>GMP</para>
221
222 <para>This package contains math libraries that provide useful functions
223 for arbitrary precision arithmetic. It is required to build Gcc.</para>
224 </listitem>
225
226 <listitem>
227 <para>Gperf</para>
228
229 <para>This package contains a program that generates a perfect hash
230 function from a key set. It is required for systemd.</para>
231 </listitem>
232
233 <listitem>
234 <para>Grep</para>
235
236 <para>This package contains programs for searching through files. These
237 programs are used by most packages' build scripts.</para>
238 </listitem>
239
240 <listitem>
241 <para>Groff</para>
242
243 <para>This package contains programs for processing and formatting text.
244 One important function of these programs is to format man pages.</para>
245 </listitem>
246
247 <listitem>
248 <para>GRUB</para>
249
250 <para>This package is the Grand Unified Boot Loader. It is one
251 of several boot loaders available, but is the most flexible.
252 </para>
253 </listitem>
254
255 <listitem>
256 <para>Gzip</para>
257
258 <para>This package contains programs for compressing and
259 decompressing files. It is needed to decompress many packages in LFS
260 and beyond.</para>
261 </listitem>
262
263 <listitem>
264 <para>Iana-etc</para>
265
266 <para>This package provides data for network services and protocols.
267 It is needed to enable proper networking capabilities.</para>
268 </listitem>
269
270 <listitem>
271 <para>Inetutils</para>
272
273 <para>This package contains programs for basic network
274 administration.</para>
275 </listitem>
276
277 <listitem>
278 <para>Intltool</para>
279
280 <para>This package contains tools for extracting translatable
281 strings from source files.</para>
282 </listitem>
283
284 <listitem>
285 <para>IProute2</para>
286
287 <para>This package contains programs for basic and advanced IPv4 and
288 IPv6 networking. It was chosen over the other common network
289 tools package (net-tools) for its IPv6 capabilities. </para>
290 </listitem>
291
292 <listitem>
293 <para>Kbd</para>
294
295 <para>This package contains key-table files, keyboard utilities
296 for non-US keyboards, and a number of console fonts.</para>
297 </listitem>
298
299 <listitem>
300 <para>Kmod</para>
301
302 <para>This package contains programs needed to administer Linux
303 kernel modules.</para>
304 </listitem>
305
306 <listitem>
307 <para>Less</para>
308
309 <para>This package contains a very nice text file viewer that
310 allows scrolling up or down when viewing a file. It is also used by
311 Man-DB for viewing manpages.</para>
312 </listitem>
313
314 <listitem>
315 <para>Libcap</para>
316
317 <para>This package implements the user-space interfaces to
318 the POSIX 1003.1e capabilities available in Linux kernels.
319 </para>
320 </listitem>
321
322 <listitem>
323 <para>Libpipeline</para>
324
325 <para>The Libpipeline package contains a library for manipulating
326 pipelines of subprocesses in a flexible and convenient way. It is
327 required by the Man-DB package.</para>
328 </listitem>
329
330 <listitem>
331 <para>Libtool</para>
332
333 <para>This package contains the GNU generic library support
334 script. It wraps the complexity of using shared libraries in a
335 consistent, portable interface. It is needed by the test
336 suites in other LFS packages.</para>
337 </listitem>
338
339 <listitem>
340 <para>Linux Kernel</para>
341
342 <para>This package is the Operating System. It is the Linux in
343 the GNU/Linux environment.</para>
344 </listitem>
345
346 <listitem>
347 <para>M4</para>
348
349 <para>This package contains a general text macro processor useful
350 as a build tool for other programs.</para>
351 </listitem>
352
353 <listitem>
354 <para>Make</para>
355
356 <para>This package contains a program for directing the building
357 of packages. It is required by almost every package in LFS.</para>
358 </listitem>
359
360 <listitem>
361 <para>Man-DB</para>
362
363 <para>This package contains programs for finding and viewing man pages.
364 It was chosen instead of the <application>man</application> package
365 due to superior internationalization capabilities. It supplies
366 the man program.</para>
367 </listitem>
368
369 <listitem>
370 <para>Man-pages</para>
371
372 <para>This package contains the actual contents of the basic
373 Linux man pages.</para>
374 </listitem>
375
376 <listitem>
377 <para>MPC</para>
378
379 <para>This package contains functions for the arithmetic of complex
380 numbers. It is required by Gcc.</para>
381 </listitem>
382
383 <listitem>
384 <para>MPFR</para>
385
386 <para>This package contains functions for multiple precision
387 arithmetic. It is required by Gcc.</para>
388 </listitem>
389
390 <listitem>
391 <para>Ncurses</para>
392
393 <para>This package contains libraries for terminal-independent
394 handling of character screens. It is often used to provide
395 cursor control for a menuing system. It is needed by a number of
396 packages in LFS.</para>
397 </listitem>
398
399 <listitem>
400 <para>Patch</para>
401
402 <para>This package contains a program for modifying or creating files by
403 applying a <emphasis>patch</emphasis> file typically created
404 by the <application>diff</application> program. It is needed by
405 the build procedure for several LFS packages.</para>
406 </listitem>
407
408 <listitem>
409 <para>Perl</para>
410
411 <para>This package is an interpreter for the runtime language
412 PERL. It is needed for the installation and test suites of several LFS
413 packages.</para>
414 </listitem>
415
416 <listitem>
417 <para>Pkg-config</para>
418
419 <para>This package provides a program to return meta-data about an
420 installed library or package.</para>
421 </listitem>
422
423 <listitem>
424 <para>Procps-NG</para>
425
426 <para>This package contains programs for monitoring processes. These
427 programs are useful for system administration, and are also used by
428 the LFS Bootscripts.</para>
429 </listitem>
430
431 <listitem>
432 <para>Psmisc</para>
433
434 <para>This package contains programs for displaying information
435 about running processes. These programs are useful for system
436 administration.</para>
437 </listitem>
438
439 <listitem>
440 <para>Readline</para>
441
442 <para>This package is a set of libraries that offers command-line
443 editing and history capabilities. It is used by Bash.</para>
444 </listitem>
445
446 <listitem>
447 <para>Sed</para>
448
449 <para>This package allows editing of text without opening it in a
450 text editor. It is also needed by most LFS packages' configure
451 scripts.</para>
452 </listitem>
453
454 <listitem>
455 <para>Shadow</para>
456
457 <para>This package contains programs for handling passwords
458 in a secure way.</para>
459 </listitem>
460
461 <listitem>
462 <para>Systemd</para>
463
464 <para>This package provides and <application>init</application> program
465 and several additional boot and system control capabilites as an
466 alternative to Sysvinit. It is used by many Linux distributions.</para>
467 </listitem>
468
469 <listitem>
470 <para>Tar</para>
471
472 <para>This package provides archiving and extraction capabilities
473 of virtually all packages used in LFS.</para>
474 </listitem>
475
476 <listitem>
477 <para>Tcl</para>
478
479 <para>This package contains the Tool Command Language used
480 in many test suites in LFS packages. It is only installed in
481 the temporary toolchain.</para>
482 </listitem>
483
484 <listitem>
485 <para>Texinfo</para>
486
487 <para>This package contains programs for reading, writing, and
488 converting info pages. It is used in the installation
489 procedures of many LFS packages.</para>
490 </listitem>
491
492 <listitem>
493 <para>Util-linux</para>
494
495 <para>This package contains miscellaneous utility programs.
496 Among them are utilities for handling file systems, consoles,
497 partitions, and messages.</para>
498 </listitem>
499
500 <listitem>
501 <para>Vim</para>
502
503 <para>This package contains an editor. It was chosen because of its
504 compatibility with the classic vi editor and its huge number of powerful
505 capabilities. An editor is a very personal choice for
506 many users and any other editor could be substituted if desired.</para>
507 </listitem>
508
509 <listitem>
510 <para>XML::Parser</para>
511
512 <para>This package is a Perl module that interfaces with Expat.</para>
513 </listitem>
514
515 <listitem>
516 <para>XZ Utils</para>
517
518 <para>This package contains programs for compressing and decompressing
519 files. It provides the highest compression generally available
520 and is useful for decompressing packages in XZ or LZMA format.</para>
521 </listitem>
522
523 <listitem>
524 <para>Zlib</para>
525
526 <para>This package contains compression and decompression routines
527 used by some programs.</para>
528 </listitem>
529
530 </itemizedlist>
531
532</sect1>
533
Note: See TracBrowser for help on using the repository browser.