source: prologue/why.xml@ ba9a546

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

Merge lfs svn, dbus 1.8.6 update, fix md5sums repored by spiky.

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

  • Property mode set to 100644
File size: 18.3 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 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
32 <listitem>
33 <para>Attr</para>
34
35 <para>This package contains programs for working with extended
36 attributes on filesystem objects. It is required by the libcap
37 library.</para>
38 </listitem>
39
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
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
80 capabilities beyond basic shell functions.</para>
81 </listitem>
82
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
90 <listitem>
91 <para>Binutils</para>
92
93 <para>This package contains a linker, an assembler, and other
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>
96 </listitem>
97
98 <listitem>
99 <para>Bison</para>
100
101 <para>This package contains the GNU version of yacc (Yet Another
102 Compiler Compiler) needed to build several other LFS programs.</para>
103 </listitem>
104
105 <listitem>
106 <para>Bzip2</para>
107
108 <para>This package contains programs for compressing and decompressing
109 files. It is required to decompress many LFS packages.</para>
110 </listitem>
111
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
119 <listitem>
120 <para>Coreutils</para>
121
122 <para>This package contains a number of essential programs for viewing
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>
126 </listitem>
127
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
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
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
153 <para>This package contains programs that show the differences
154 between files or directories. These programs can be used to create
155 patches, and are also used in many packages' build procedures.</para>
156 </listitem>
157
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
173 <listitem>
174 <para>Expat</para>
175
176 <para>This package contains programs for parsing XML. It is
177 required for XML-Parser.
178 </para>
179 </listitem>
180
181 <listitem>
182 <para>Expect</para>
183
184 <para>This package contains a program for carrying out scripted
185 dialogues with other interactive programs. It is commonly used
186 for testing other packages. It is only installed in the temporary
187 toolchain.</para>
188 </listitem>
189
190 <listitem>
191 <para>File</para>
192
193 <para>This package contains a utility for determining the type of a
194 given file or files. A few packages need it to build.</para>
195 </listitem>
196
197 <listitem>
198 <para>Findutils</para>
199
200 <para>This package contains programs to find files in a file system.
201 It is used in many packages' build scripts.</para>
202 </listitem>
203
204 <listitem>
205 <para>Flex</para>
206
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
210 LFS packages.</para>
211 </listitem>
212
213 <listitem>
214 <para>Gawk</para>
215
216 <para>This package contains programs for manipulating text files.
217 It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
218 many other packages' build scripts.</para>
219 </listitem>
220
221 <listitem>
222 <para>Gcc</para>
223
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.
226 </para>
227 </listitem>
228
229 <listitem>
230 <para>GDBM</para>
231
232 <para>This package contains the GNU Database Manager library. It
233 is used by one other LFS package, Man-DB.</para>
234 </listitem>
235
236 <listitem>
237 <para>Gettext</para>
238
239 <para>This package contains utilities and libraries for
240 internationalization and localization of numerous packages.</para>
241 </listitem>
242
243 <listitem>
244 <para>Glibc</para>
245
246 <para>This package contains the main C library. Linux programs would
247 not run without it.</para>
248 </listitem>
249
250 <listitem>
251 <para>GMP</para>
252
253 <para>This package contains math libraries that provide useful functions
254 for arbitrary precision arithmetic. It is required to build Gcc.</para>
255 </listitem>
256
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
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
272 <listitem>
273 <para>Grep</para>
274
275 <para>This package contains programs for searching through files. These
276 programs are used by most packages' build scripts.</para>
277 </listitem>
278
279 <listitem>
280 <para>Groff</para>
281
282 <para>This package contains programs for processing and formatting text.
283 One important function of these programs is to format man pages.</para>
284 </listitem>
285
286 <listitem>
287 <para>GRUB</para>
288
289 <para>This package is the Grand Unified Boot Loader. It is one
290 of several boot loaders available, but is the most flexible.
291 </para>
292 </listitem>
293
294 <listitem>
295 <para>Gzip</para>
296
297 <para>This package contains programs for compressing and
298 decompressing files. It is needed to decompress many packages in LFS
299 and beyond.</para>
300 </listitem>
301
302 <listitem>
303 <para>Iana-etc</para>
304
305 <para>This package provides data for network services and protocols.
306 It is needed to enable proper networking capabilities.</para>
307 </listitem>
308
309 <listitem>
310 <para>Inetutils</para>
311
312 <para>This package contains programs for basic network
313 administration.</para>
314 </listitem>
315
316 <listitem>
317 <para>Intltool</para>
318
319 <para>This package contains internationalization tools; it is required
320 by Systemd.</para>
321 </listitem>
322
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
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
341 <para>This package contains key-table files, keyboard utilities
342 for non-US keyboards, and a number of console fonts.</para>
343 </listitem>
344
345 <listitem>
346 <para>Kmod</para>
347
348 <para>This package contains programs needed to administer Linux
349 kernel modules.</para>
350 </listitem>
351
352 <listitem>
353 <para>Less</para>
354
355 <para>This package contains a very nice text file viewer that
356 allows scrolling up or down when viewing a file. It is also used by
357 Man-DB for viewing manpages.</para>
358 </listitem>
359
360 <listitem>
361 <para>Libcap</para>
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
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
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
384 <listitem>
385 <para>Libtool</para>
386
387 <para>This package contains the GNU generic library support
388 script. It wraps the complexity of using shared libraries in a
389 consistent, portable interface. It is needed by the test
390 suites in other LFS packages.</para>
391 </listitem>
392
393 <listitem>
394 <para>Linux Kernel</para>
395
396 <para>This package is the Operating System. It is the Linux in
397 the GNU/Linux environment.</para>
398 </listitem>
399
400 <listitem>
401 <para>M4</para>
402
403 <para>This package contains a general text macro processor useful
404 as a build tool for other programs.</para>
405 </listitem>
406
407 <listitem>
408 <para>Make</para>
409
410 <para>This package contains a program for directing the building
411 of packages. It is required by almost every package in LFS.</para>
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
420 the man program.</para>
421 </listitem>
422
423 <listitem>
424 <para>Man-pages</para>
425
426 <para>This package contains the actual contents of the basic
427 Linux man pages.</para>
428 </listitem>
429
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
437 <listitem>
438 <para>MPFR</para>
439
440 <para>This package contains functions for multiple precision
441 arithmetic. It is required by Gcc.</para>
442 </listitem>
443
444 <listitem>
445 <para>Ncurses</para>
446
447 <para>This package contains libraries for terminal-independent
448 handling of character screens. It is often used to provide
449 cursor control for a menuing system. It is needed by a number of
450 packages in LFS.</para>
451 </listitem>
452
453 <listitem>
454 <para>Patch</para>
455
456 <para>This package contains a program for modifying or creating files by
457 applying a <emphasis>patch</emphasis> file typically created
458 by the <application>diff</application> program. It is needed by
459 the build procedure for several LFS packages.</para>
460 </listitem>
461
462 <listitem>
463 <para>Perl</para>
464
465 <para>This package is an interpreter for the runtime language
466 PERL. It is needed for the installation and test suites of several LFS
467 packages.</para>
468 </listitem>
469
470 <listitem>
471 <para>Pkg-config</para>
472
473 <para>This package provides a program to return meta-data about an
474 installed library or package.</para>
475 </listitem>
476
477 <listitem>
478 <para>Procps-NG</para>
479
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>
483 </listitem>
484
485 <listitem>
486 <para>Psmisc</para>
487
488 <para>This package contains programs for displaying information
489 about running processes. These programs are useful for system
490 administration.</para>
491 </listitem>
492
493 <listitem>
494 <para>Readline</para>
495
496 <para>This package is a set of libraries that offers command-line
497 editing and history capabilities. It is used by Bash.</para>
498 </listitem>
499
500 <listitem>
501 <para>Sed</para>
502
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
505 scripts.</para>
506 </listitem>
507
508 <listitem>
509 <para>Shadow</para>
510
511 <para>This package contains programs for handling passwords
512 in a secure way.</para>
513 </listitem>
514
515 <listitem>
516 <para>Systemd</para>
517
518 <para>This package contains programs for controlling the startup,
519 running, and shutdown of the system.</para>
520 </listitem>
521
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
532 <listitem>
533 <para>Sysvinit</para>
534
535 <para>This package provides misc. utils needed by some packages.</para>
536 </listitem>
537
538 <listitem>
539 <para>Tar</para>
540
541 <para>This package provides archiving and extraction capabilities
542 of virtually all packages used in LFS.</para>
543 </listitem>
544
545 <listitem>
546 <para>Tcl</para>
547
548 <para>This package contains the Tool Command Language used
549 in many test suites in LFS packages. It is only installed in
550 the temporary toolchain.</para>
551 </listitem>
552
553 <listitem>
554 <para>Texinfo</para>
555
556 <para>This package contains programs for reading, writing, and
557 converting info pages. It is used in the installation
558 procedures of many LFS packages.</para>
559 </listitem>
560
561 <listitem>
562 <para>Util-linux</para>
563
564 <para>This package contains miscellaneous utility programs.
565 Among them are utilities for handling file systems, consoles,
566 partitions, and messages.</para>
567 </listitem>
568
569 <listitem>
570 <para>Vim</para>
571
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
574 capabilities. An editor is a very personal choice for
575 many users and any other editor could be substituted if desired.</para>
576 </listitem>
577
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
585 <listitem>
586 <para>XML::Parser</para>
587
588 <para>This package is a Perl module that interfaces with Expat.</para>
589 </listitem>
590
591 <listitem>
592 <para>XZ Utils</para>
593
594 <para>This package contains programs for compressing and decompressing
595 files. It provides the highest compression generally available
596 and is useful for decompressing packages in XZ or LZMA format.</para>
597 </listitem>
598
599 <listitem>
600 <para>Zlib</para>
601
602 <para>This package contains compression and decompression routines
603 used by some programs.</para>
604 </listitem>
605
606 </itemizedlist>
607
608</sect1>
609
Note: See TracBrowser for help on using the repository browser.