source: prologue/why.xml@ b3eb525

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.6 7.7 7.8 7.9 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 b3eb525 was b3eb525, checked in by Bruce Dubbs <bdubbs@…>, 10 years ago

Remove systemd and dbus. Add eudev.
Update gnu urls to use an entity.
Update kbd URL.
Update procps-ng URL.
Update to shadow-4.2.1.

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

  • Property mode set to 100644
File size: 17.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.
116 </para>
117 </listitem>
118-->
119 <listitem>
120 <para>DejaGNU</para>
121
122 <para>This package contains a framework for testing other programs.
123 It is only installed in the temporary toolchain.</para>
124 </listitem>
125
126 <listitem>
127 <para>Diffutils</para>
128
129 <para>This package contains programs that show the differences
130 between files or directories. These programs can be used to create
131 patches, and are also used in many packages' build procedures.</para>
132 </listitem>
133
134 <listitem>
135 <para>E2fsprogs</para>
136
137 <para>This package contains the utilities for handling the ext2, ext3
138 and ext4 file systems. These are the most common and thoroughly
139 tested file systems that Linux supports.</para>
140 </listitem>
141
142 <listitem>
143 <para>Eudev</para>
144
145 <para>This package is a device manager. It dynamically controls the entries
146 in the /dev directory as devices are added or removed from the system.
147 </para>
148 </listitem>
149
150 <listitem>
151 <para>Expat</para>
152
153 <para>This package contains programs for parsing XML. It is
154 required for systemd.
155 </para>
156 </listitem>
157
158 <listitem>
159 <para>Expect</para>
160
161 <para>This package contains a program for carrying out scripted
162 dialogues with other interactive programs. It is commonly used
163 for testing other packages. It is only installed in the temporary
164 toolchain.</para>
165 </listitem>
166
167 <listitem>
168 <para>File</para>
169
170 <para>This package contains a utility for determining the type of a
171 given file or files. A few packages need it to build.</para>
172 </listitem>
173
174 <listitem>
175 <para>Findutils</para>
176
177 <para>This package contains programs to find files in a file system.
178 It is used in many packages' build scripts.</para>
179 </listitem>
180
181 <listitem>
182 <para>Flex</para>
183
184 <para>This package contains a utility for generating programs that
185 recognize patterns in text. It is the GNU version of the lex
186 (lexical analyzer) program. It is required to build several
187 LFS packages.</para>
188 </listitem>
189
190 <listitem>
191 <para>Gawk</para>
192
193 <para>This package contains programs for manipulating text files.
194 It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
195 many other packages' build scripts.</para>
196 </listitem>
197
198 <listitem>
199 <para>Gcc</para>
200
201 <para>This package is the Gnu Compiler Collection. It contains the
202 C and C++ compilers as well as several others not built by LFS.
203 </para>
204 </listitem>
205
206 <listitem>
207 <para>GDBM</para>
208
209 <para>This package contains the GNU Database Manager library. It
210 is used by one other LFS package, Man-DB.</para>
211 </listitem>
212
213 <listitem>
214 <para>Gettext</para>
215
216 <para>This package contains utilities and libraries for
217 internationalization and localization of numerous packages.</para>
218 </listitem>
219
220 <listitem>
221 <para>Glibc</para>
222
223 <para>This package contains the main C library. Linux programs would
224 not run without it.</para>
225 </listitem>
226
227 <listitem>
228 <para>GMP</para>
229
230 <para>This package contains math libraries that provide useful functions
231 for arbitrary precision arithmetic. It is required to build Gcc.</para>
232 </listitem>
233
234 <listitem>
235 <para>Gperf</para>
236
237 <para>This package a program that generates a perfect hash function
238 from a key set. It is required for systemd.
239 </para>
240 </listitem>
241
242 <listitem>
243 <para>Grep</para>
244
245 <para>This package contains programs for searching through files. These
246 programs are used by most packages' build scripts.</para>
247 </listitem>
248
249 <listitem>
250 <para>Groff</para>
251
252 <para>This package contains programs for processing and formatting text.
253 One important function of these programs is to format man pages.</para>
254 </listitem>
255
256 <listitem>
257 <para>GRUB</para>
258
259 <para>This package is the Grand Unified Boot Loader. It is one
260 of several boot loaders available, but is the most flexible.
261 </para>
262 </listitem>
263
264 <listitem>
265 <para>Gzip</para>
266
267 <para>This package contains programs for compressing and
268 decompressing files. It is needed to decompress many packages in LFS
269 and beyond.</para>
270 </listitem>
271
272 <listitem>
273 <para>Iana-etc</para>
274
275 <para>This package provides data for network services and protocols.
276 It is needed to enable proper networking capabilities.</para>
277 </listitem>
278
279 <listitem>
280 <para>Inetutils</para>
281
282 <para>This package contains programs for basic network
283 administration.</para>
284 </listitem>
285
286 <listitem>
287 <para>Intltool</para>
288
289 <para>This package contains tools for extracting translatable
290 strings from source files.</para>
291 </listitem>
292
293 <listitem>
294 <para>IProute2</para>
295
296 <para>This package contains programs for basic and advanced IPv4 and
297 IPv6 networking. It was chosen over the other common network
298 tools package (net-tools) for its IPv6 capabilities. </para>
299 </listitem>
300
301 <listitem>
302 <para>Kbd</para>
303
304 <para>This package contains key-table files, keyboard utilities
305 for non-US keyboards, and a number of console fonts.</para>
306 </listitem>
307
308 <listitem>
309 <para>Kmod</para>
310
311 <para>This package contains programs needed to administer Linux
312 kernel modules.</para>
313 </listitem>
314
315 <listitem>
316 <para>Less</para>
317
318 <para>This package contains a very nice text file viewer that
319 allows scrolling up or down when viewing a file. It is also used by
320 Man-DB for viewing manpages.</para>
321 </listitem>
322
323 <listitem>
324 <para>Libcap</para>
325
326 <para>This package implements the user-space interfaces to
327 the POSIX 1003.1e capabilities available in Linux kernels.
328 </para>
329 </listitem>
330
331 <listitem>
332 <para>Libpipeline</para>
333
334 <para>The Libpipeline package contains a library for manipulating
335 pipelines of subprocesses in a flexible and convenient way. It is
336 required by the Man-DB package.</para>
337 </listitem>
338
339 <listitem>
340 <para>Libtool</para>
341
342 <para>This package contains the GNU generic library support
343 script. It wraps the complexity of using shared libraries in a
344 consistent, portable interface. It is needed by the test
345 suites in other LFS packages.</para>
346 </listitem>
347
348 <listitem>
349 <para>Linux Kernel</para>
350
351 <para>This package is the Operating System. It is the Linux in
352 the GNU/Linux environment.</para>
353 </listitem>
354
355 <listitem>
356 <para>M4</para>
357
358 <para>This package contains a general text macro processor useful
359 as a build tool for other programs.</para>
360 </listitem>
361
362 <listitem>
363 <para>Make</para>
364
365 <para>This package contains a program for directing the building
366 of packages. It is required by almost every package in LFS.</para>
367 </listitem>
368
369 <listitem>
370 <para>Man-DB</para>
371
372 <para>This package contains programs for finding and viewing man pages.
373 It was chosen instead of the <application>man</application> package
374 due to superior internationalization capabilities. It supplies
375 the man program.</para>
376 </listitem>
377
378 <listitem>
379 <para>Man-pages</para>
380
381 <para>This package contains the actual contents of the basic
382 Linux man pages.</para>
383 </listitem>
384
385 <listitem>
386 <para>MPC</para>
387
388 <para>This package contains functions for the arithmetic of complex
389 numbers. It is required by Gcc.</para>
390 </listitem>
391
392 <listitem>
393 <para>MPFR</para>
394
395 <para>This package contains functions for multiple precision
396 arithmetic. It is required by Gcc.</para>
397 </listitem>
398
399 <listitem>
400 <para>Ncurses</para>
401
402 <para>This package contains libraries for terminal-independent
403 handling of character screens. It is often used to provide
404 cursor control for a menuing system. It is needed by a number of
405 packages in LFS.</para>
406 </listitem>
407
408 <listitem>
409 <para>Patch</para>
410
411 <para>This package contains a program for modifying or creating files by
412 applying a <emphasis>patch</emphasis> file typically created
413 by the <application>diff</application> program. It is needed by
414 the build procedure for several LFS packages.</para>
415 </listitem>
416
417 <listitem>
418 <para>Perl</para>
419
420 <para>This package is an interpreter for the runtime language
421 PERL. It is needed for the installation and test suites of several LFS
422 packages.</para>
423 </listitem>
424
425 <listitem>
426 <para>Pkg-config</para>
427
428 <para>This package provides a program to return meta-data about an
429 installed library or package.</para>
430 </listitem>
431
432 <listitem>
433 <para>Procps-NG</para>
434
435 <para>This package contains programs for monitoring processes. These
436 programs are useful for system administration, and are also used by
437 the LFS Bootscripts.</para>
438 </listitem>
439
440 <listitem>
441 <para>Psmisc</para>
442
443 <para>This package contains programs for displaying information
444 about running processes. These programs are useful for system
445 administration.</para>
446 </listitem>
447
448 <listitem>
449 <para>Readline</para>
450
451 <para>This package is a set of libraries that offers command-line
452 editing and history capabilities. It is used by Bash.</para>
453 </listitem>
454
455 <listitem>
456 <para>Sed</para>
457
458 <para>This package allows editing of text without opening it in a
459 text editor. It is also needed by most LFS packages' configure
460 scripts.</para>
461 </listitem>
462
463 <listitem>
464 <para>Shadow</para>
465
466 <para>This package contains programs for handling passwords
467 in a secure way.</para>
468 </listitem>
469
470 <listitem>
471 <para>Sysklogd</para>
472
473 <para>This package contains programs for logging system messages,
474 such as those given by the kernel or daemon processes when unusual
475 events occur.</para>
476 </listitem>
477<!--
478 <listitem>
479 <para>Systemd</para>
480
481 <para>This package provides and <application>init</application> program
482 and several additional boot and system control capabilites as an
483 alternative to Sysvinit. It is used by many commercial distributions.
484 In LFS it is installed side-by-side with Sysvinit to provide the user with
485 alternative boot systems for comparison.</para>
486 </listitem>
487-->
488 <listitem>
489 <para>Sysvinit</para>
490
491 <para>This package provides the <application>init</application>
492 program, which is the parent of all other processes on the Linux
493 system. </para>
494 </listitem>
495
496 <listitem>
497 <para>Tar</para>
498
499 <para>This package provides archiving and extraction capabilities
500 of virtually all packages used in LFS.</para>
501 </listitem>
502
503 <listitem>
504 <para>Tcl</para>
505
506 <para>This package contains the Tool Command Language used
507 in many test suites in LFS packages. It is only installed in
508 the temporary toolchain.</para>
509 </listitem>
510
511 <listitem>
512 <para>Texinfo</para>
513
514 <para>This package contains programs for reading, writing, and
515 converting info pages. It is used in the installation
516 procedures of many LFS packages.</para>
517 </listitem>
518
519 <listitem>
520 <para>Udev</para>
521
522 <para>This package contains programs for dynamic creation of
523 device nodes. It is an alternative to creating thousands of
524 static devices in the /dev directory.</para>
525 </listitem>
526
527 <listitem>
528 <para>Util-linux</para>
529
530 <para>This package contains miscellaneous utility programs.
531 Among them are utilities for handling file systems, consoles,
532 partitions, and messages.</para>
533 </listitem>
534
535 <listitem>
536 <para>Vim</para>
537
538 <para>This package contains an editor. It was chosen because of its
539 compatibility with the classic vi editor and its huge number of powerful
540 capabilities. An editor is a very personal choice for
541 many users and any other editor could be substituted if desired.</para>
542 </listitem>
543
544 <listitem>
545 <para>XML::Parser</para>
546
547 <para>This package is a Perl module that interfaces with Expat.</para>
548 </listitem>
549
550 <listitem>
551 <para>XZ Utils</para>
552
553 <para>This package contains programs for compressing and decompressing
554 files. It provides the highest compression generally available
555 and is useful for decompressing packages XZ or LZMA format.</para>
556 </listitem>
557
558 <listitem>
559 <para>Zlib</para>
560
561 <para>This package contains compression and decompression routines
562 used by some programs.</para>
563 </listitem>
564
565 </itemizedlist>
566
567</sect1>
568
Note: See TracBrowser for help on using the repository browser.