source: prologue/why.xml@ 346eaef1

7.6-systemd 7.7-systemd 7.8-systemd 7.9-systemd
Last change on this file since 346eaef1 was 61ce0b1, checked in by DJ Lucas <dj@…>, 10 years ago

Synchronized with LFS-SVN-20140611.

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

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