[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 |
|
---|
| 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 |
|
---|
| 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
|
---|
[1c72dda] | 46 | capabilities beyond basic shell functions.</para>
|
---|
[a26951e] | 47 | </listitem>
|
---|
| 48 |
|
---|
| 49 | <listitem>
|
---|
| 50 | <para>Binutils</para>
|
---|
| 51 |
|
---|
[f410573] | 52 | <para>This package contains a linker, an assembler, and other
|
---|
[1c72dda] | 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>
|
---|
[a26951e] | 55 | </listitem>
|
---|
| 56 |
|
---|
| 57 | <listitem>
|
---|
| 58 | <para>Bison</para>
|
---|
| 59 |
|
---|
| 60 | <para>This package contains the GNU version of yacc (Yet Another
|
---|
[1c72dda] | 61 | Compiler Compiler) needed to build several other LFS programs.</para>
|
---|
[a26951e] | 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
|
---|
[1c72dda] | 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>
|
---|
[a26951e] | 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
|
---|
[1c72dda] | 91 | between files or directories. These programs can be used to create
|
---|
| 92 | patches, and are also used in many packages' build procedures.</para>
|
---|
[a26951e] | 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
|
---|
[c6d5b092] | 108 | and ext4 file systems. These are the most common and thoroughly
|
---|
[a26951e] | 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
|
---|
[1c72dda] | 116 | given file or files. A few packages need it to build.</para>
|
---|
[a26951e] | 117 | </listitem>
|
---|
| 118 |
|
---|
| 119 | <listitem>
|
---|
| 120 | <para>Findutils</para>
|
---|
| 121 |
|
---|
[1c72dda] | 122 | <para>This package contains programs to find files in a file system.
|
---|
| 123 | It is used in many packages' build scripts.</para>
|
---|
[a26951e] | 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
|
---|
[1c72dda] | 132 | LFS packages.</para>
|
---|
[a26951e] | 133 | </listitem>
|
---|
| 134 |
|
---|
| 135 | <listitem>
|
---|
| 136 | <para>Gawk</para>
|
---|
| 137 |
|
---|
| 138 | <para>This package contains programs for manipulating text files.
|
---|
[1c72dda] | 139 | It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
|
---|
| 140 | many other packages' build scripts.</para>
|
---|
[a26951e] | 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
|
---|
[1c72dda] | 155 | is used by one other LFS package, Man-DB.</para>
|
---|
[a26951e] | 156 | </listitem>
|
---|
| 157 |
|
---|
| 158 | <listitem>
|
---|
| 159 | <para>Gettext</para>
|
---|
| 160 |
|
---|
| 161 | <para>This package contains utilities and libraries for
|
---|
[1c72dda] | 162 | internationalization and localization of numerous packages.</para>
|
---|
[a26951e] | 163 | </listitem>
|
---|
| 164 |
|
---|
| 165 | <listitem>
|
---|
| 166 | <para>Glibc</para>
|
---|
| 167 |
|
---|
| 168 | <para>This package contains the main C library. Linux programs would
|
---|
[1c72dda] | 169 | not run without it.</para>
|
---|
[a26951e] | 170 | </listitem>
|
---|
| 171 |
|
---|
| 172 | <listitem>
|
---|
| 173 | <para>GMP</para>
|
---|
| 174 |
|
---|
[9ec9c03] | 175 | <para>This package contains math libraries that provide useful functions
|
---|
| 176 | for arbitrary precision arithmetic. It is required to build Gcc.</para>
|
---|
[a26951e] | 177 | </listitem>
|
---|
| 178 |
|
---|
| 179 | <listitem>
|
---|
| 180 | <para>Grep</para>
|
---|
| 181 |
|
---|
[1c72dda] | 182 | <para>This package contains programs for searching through files. These
|
---|
| 183 | programs are used by most packages' build scripts.</para>
|
---|
[a26951e] | 184 | </listitem>
|
---|
| 185 |
|
---|
| 186 | <listitem>
|
---|
| 187 | <para>Groff</para>
|
---|
| 188 |
|
---|
| 189 | <para>This package contains programs for processing and formatting text.
|
---|
[1c72dda] | 190 | One important function of these programs is to format man pages.</para>
|
---|
[a26951e] | 191 | </listitem>
|
---|
| 192 |
|
---|
| 193 | <listitem>
|
---|
| 194 | <para>GRUB</para>
|
---|
| 195 |
|
---|
| 196 | <para>This package is the Grand Unified Boot Loader. It is one
|
---|
| 197 | of several boot loaders available, but is the most flexible.
|
---|
| 198 | </para>
|
---|
| 199 | </listitem>
|
---|
| 200 |
|
---|
| 201 | <listitem>
|
---|
| 202 | <para>Gzip</para>
|
---|
| 203 |
|
---|
| 204 | <para>This package contains programs for compressing and
|
---|
[1c72dda] | 205 | decompressing files. It is needed to decompress many packages in LFS
|
---|
| 206 | and beyond.</para>
|
---|
[a26951e] | 207 | </listitem>
|
---|
| 208 |
|
---|
| 209 | <listitem>
|
---|
| 210 | <para>Iana-etc</para>
|
---|
| 211 |
|
---|
| 212 | <para>This package provides data for network services and protocols.
|
---|
[1c72dda] | 213 | It is needed to enable proper networking capabilities.</para>
|
---|
[a26951e] | 214 | </listitem>
|
---|
| 215 |
|
---|
| 216 | <listitem>
|
---|
| 217 | <para>Inetutils</para>
|
---|
| 218 |
|
---|
| 219 | <para>This package contains programs for basic network
|
---|
[1c72dda] | 220 | administration.</para>
|
---|
[a26951e] | 221 | </listitem>
|
---|
| 222 |
|
---|
| 223 | <listitem>
|
---|
| 224 | <para>IProute2</para>
|
---|
| 225 |
|
---|
| 226 | <para>This package contains programs for basic and advanced IPv4 and
|
---|
| 227 | IPv6 networking. It was chosen over the other common network
|
---|
| 228 | tools package (net-tools) for its IPv6 capabilities. </para>
|
---|
| 229 | </listitem>
|
---|
| 230 |
|
---|
| 231 | <listitem>
|
---|
| 232 | <para>Kbd</para>
|
---|
| 233 |
|
---|
[1c72dda] | 234 | <para>This package contains key-table files, keyboard utilities
|
---|
| 235 | for non-US keyboards, and a number of console fonts.</para>
|
---|
[a26951e] | 236 | </listitem>
|
---|
| 237 |
|
---|
| 238 | <listitem>
|
---|
| 239 | <para>Less</para>
|
---|
| 240 |
|
---|
| 241 | <para>This package contains a very nice text file viewer that
|
---|
[1c72dda] | 242 | allows scrolling up or down when viewing a file. It is also used by
|
---|
| 243 | Man-DB for viewing manpages.</para>
|
---|
[a26951e] | 244 | </listitem>
|
---|
| 245 |
|
---|
| 246 | <listitem>
|
---|
| 247 | <para>Libtool</para>
|
---|
| 248 |
|
---|
| 249 | <para>This package contains the GNU generic library support
|
---|
| 250 | script. It wraps the complexity of using shared libraries in a
|
---|
| 251 | consistent, portable interface. It is needed by the test
|
---|
[1c72dda] | 252 | suites in other LFS packages.</para>
|
---|
[a26951e] | 253 | </listitem>
|
---|
| 254 |
|
---|
| 255 | <listitem>
|
---|
| 256 | <para>Linux Kernel</para>
|
---|
| 257 |
|
---|
| 258 | <para>This package is the Operating System. It is the Linux in
|
---|
[1c72dda] | 259 | the GNU/Linux environment.</para>
|
---|
[a26951e] | 260 | </listitem>
|
---|
| 261 |
|
---|
| 262 | <listitem>
|
---|
| 263 | <para>M4</para>
|
---|
| 264 |
|
---|
| 265 | <para>This package contains a general text macro processor useful
|
---|
[1c72dda] | 266 | as a build tool for other programs.</para>
|
---|
[a26951e] | 267 | </listitem>
|
---|
| 268 |
|
---|
| 269 | <listitem>
|
---|
| 270 | <para>Make</para>
|
---|
| 271 |
|
---|
| 272 | <para>This package contains a program for directing the building
|
---|
[1c72dda] | 273 | of packages. It is required by almost every package in LFS.</para>
|
---|
[a26951e] | 274 | </listitem>
|
---|
| 275 |
|
---|
| 276 | <listitem>
|
---|
| 277 | <para>Man-DB</para>
|
---|
| 278 |
|
---|
| 279 | <para>This package contains programs for finding and viewing man pages.
|
---|
| 280 | It was chosen instead of the <application>man</application> package
|
---|
| 281 | due to superior internationalization capabilities. It supplies
|
---|
[1c72dda] | 282 | the man program.</para>
|
---|
[a26951e] | 283 | </listitem>
|
---|
| 284 |
|
---|
| 285 | <listitem>
|
---|
| 286 | <para>Man-pages</para>
|
---|
| 287 |
|
---|
| 288 | <para>This package contains the actual contents of the basic
|
---|
[1c72dda] | 289 | Linux man pages.</para>
|
---|
[a26951e] | 290 | </listitem>
|
---|
| 291 |
|
---|
| 292 | <listitem>
|
---|
| 293 | <para>Module-Init-Tools</para>
|
---|
| 294 |
|
---|
| 295 | <para>This package contains programs needed to administer Linux
|
---|
| 296 | kernel modules.</para>
|
---|
| 297 | </listitem>
|
---|
| 298 |
|
---|
[1c72dda] | 299 | <listitem>
|
---|
| 300 | <para>MPC</para>
|
---|
| 301 |
|
---|
| 302 | <para>This package contains functions for the arithmetic of complex
|
---|
| 303 | numbers. It is required by Gcc.</para>
|
---|
| 304 | </listitem>
|
---|
| 305 |
|
---|
[a26951e] | 306 | <listitem>
|
---|
| 307 | <para>MPFR</para>
|
---|
| 308 |
|
---|
| 309 | <para>This package contains functions for multiple precision
|
---|
[1c72dda] | 310 | arithmetic. It is required by Gcc.</para>
|
---|
[a26951e] | 311 | </listitem>
|
---|
| 312 |
|
---|
| 313 | <listitem>
|
---|
| 314 | <para>Ncurses</para>
|
---|
| 315 |
|
---|
| 316 | <para>This package contains libraries for terminal-independent
|
---|
| 317 | handling of character screens. It is often used to provide
|
---|
[1c72dda] | 318 | cursor control for a menuing system. It is needed by a number of
|
---|
| 319 | packages in LFS.</para>
|
---|
[a26951e] | 320 | </listitem>
|
---|
| 321 |
|
---|
| 322 | <listitem>
|
---|
| 323 | <para>Patch</para>
|
---|
| 324 |
|
---|
[12c82b50] | 325 | <para>This package contains a program for modifying or creating files by
|
---|
[a26951e] | 326 | applying a <emphasis>patch</emphasis> file typically created
|
---|
| 327 | by the <application>diff</application> program. It is needed by
|
---|
[1c72dda] | 328 | the build procedure for several LFS packages.</para>
|
---|
[a26951e] | 329 | </listitem>
|
---|
| 330 |
|
---|
[5b62b8d] | 331 | <listitem>
|
---|
| 332 | <para>PCRE</para>
|
---|
| 333 |
|
---|
[5a58876] | 334 | <para>This package provides a library that can be used to implement
|
---|
[5b62b8d] | 335 | regular expression pattern matching using the same syntax and semantics
|
---|
| 336 | as Perl 5. It is a mandatory dependency of Glib, and can also be used
|
---|
| 337 | by Grep.</para>
|
---|
| 338 | </listitem>
|
---|
| 339 |
|
---|
[a26951e] | 340 | <listitem>
|
---|
| 341 | <para>Perl</para>
|
---|
| 342 |
|
---|
| 343 | <para>This package is an interpreter for the runtime language
|
---|
[0ebe029b] | 344 | PERL. It is needed for the installation and test suites of several LFS
|
---|
[1c72dda] | 345 | packages.</para>
|
---|
[a26951e] | 346 | </listitem>
|
---|
| 347 |
|
---|
| 348 | <listitem>
|
---|
| 349 | <para>Procps</para>
|
---|
| 350 |
|
---|
[1c72dda] | 351 | <para>This package contains programs for monitoring processes. These
|
---|
| 352 | programs are useful for system administration, and are also used by
|
---|
| 353 | the LFS Bootscripts.</para>
|
---|
[a26951e] | 354 | </listitem>
|
---|
| 355 |
|
---|
| 356 | <listitem>
|
---|
| 357 | <para>Psmisc</para>
|
---|
| 358 |
|
---|
| 359 | <para>This package contains programs for displaying information
|
---|
[1c72dda] | 360 | about running processes. These programs are useful for system
|
---|
| 361 | administration.</para>
|
---|
[a26951e] | 362 | </listitem>
|
---|
| 363 |
|
---|
| 364 | <listitem>
|
---|
| 365 | <para>Readline</para>
|
---|
| 366 |
|
---|
| 367 | <para>This package is a set of libraries that offers command-line
|
---|
[1c72dda] | 368 | editing and history capabilities. It is used by Bash.</para>
|
---|
[a26951e] | 369 | </listitem>
|
---|
| 370 |
|
---|
| 371 | <listitem>
|
---|
| 372 | <para>Sed</para>
|
---|
| 373 |
|
---|
| 374 | <para>This package allows editing of text without opening it in a
|
---|
| 375 | text editor. It is also needed by most LFS packages' configure
|
---|
[1c72dda] | 376 | scripts.</para>
|
---|
[a26951e] | 377 | </listitem>
|
---|
| 378 |
|
---|
| 379 | <listitem>
|
---|
| 380 | <para>Shadow</para>
|
---|
| 381 |
|
---|
| 382 | <para>This package contains programs for handling passwords
|
---|
| 383 | in a secure way.</para>
|
---|
| 384 | </listitem>
|
---|
| 385 |
|
---|
| 386 | <listitem>
|
---|
| 387 | <para>Sysklogd</para>
|
---|
| 388 |
|
---|
| 389 | <para>This package contains programs for logging system messages,
|
---|
| 390 | such as those given by the kernel or daemon processes when unusual
|
---|
[1c72dda] | 391 | events occur.</para>
|
---|
[a26951e] | 392 | </listitem>
|
---|
| 393 |
|
---|
| 394 | <listitem>
|
---|
| 395 | <para>Sysvinit</para>
|
---|
| 396 |
|
---|
| 397 | <para>This package provides the <application>init</application>
|
---|
[12c82b50] | 398 | program, which is the parent of all other processes on the Linux
|
---|
[a26951e] | 399 | system. </para>
|
---|
| 400 | </listitem>
|
---|
| 401 |
|
---|
| 402 | <listitem>
|
---|
| 403 | <para>Tar</para>
|
---|
| 404 |
|
---|
| 405 | <para>This package provides archiving and extraction capabilities
|
---|
[1c72dda] | 406 | of virtually all packages used in LFS.</para>
|
---|
[a26951e] | 407 | </listitem>
|
---|
| 408 |
|
---|
| 409 | <listitem>
|
---|
| 410 | <para>Tcl</para>
|
---|
| 411 |
|
---|
| 412 | <para>This package contains the Tool Command Language used
|
---|
[0ebe029b] | 413 | in many test suites in LFS packages. It is only installed in
|
---|
[1c72dda] | 414 | the temporary toolchain.</para>
|
---|
[a26951e] | 415 | </listitem>
|
---|
| 416 |
|
---|
| 417 | <listitem>
|
---|
| 418 | <para>Texinfo</para>
|
---|
| 419 |
|
---|
| 420 | <para>This package contains programs for reading, writing, and
|
---|
| 421 | converting info pages. It is used in the installation
|
---|
[1c72dda] | 422 | procedures of many LFS packages.</para>
|
---|
[a26951e] | 423 | </listitem>
|
---|
| 424 |
|
---|
| 425 | <listitem>
|
---|
| 426 | <para>Udev</para>
|
---|
| 427 |
|
---|
| 428 | <para>This package contains programs for dynamic creation of
|
---|
| 429 | device nodes. It is an alternative to creating thousands of
|
---|
[1c72dda] | 430 | static devices in the /dev directory.</para>
|
---|
[a26951e] | 431 | </listitem>
|
---|
| 432 |
|
---|
| 433 | <listitem>
|
---|
[e1428f3] | 434 | <para>Util-linux</para>
|
---|
[a26951e] | 435 |
|
---|
| 436 | <para>This package contains miscellaneous utility programs.
|
---|
| 437 | Among them are utilities for handling file systems, consoles,
|
---|
[1c72dda] | 438 | partitions, and messages.</para>
|
---|
[a26951e] | 439 | </listitem>
|
---|
| 440 |
|
---|
| 441 | <listitem>
|
---|
| 442 | <para>Vim</para>
|
---|
| 443 |
|
---|
[c6d5b092] | 444 | <para>This package contains an editor. It was chosen because of its
|
---|
| 445 | compatibility with the classic vi editor and its huge number of powerful
|
---|
[a26951e] | 446 | capabilities. An editor is a very personal choice for
|
---|
[1c72dda] | 447 | many users and any other editor could be substituted if desired.</para>
|
---|
[a26951e] | 448 | </listitem>
|
---|
| 449 |
|
---|
[7002213] | 450 | <listitem>
|
---|
| 451 | <para>XZ Utils</para>
|
---|
| 452 |
|
---|
| 453 | <para>This package contains programs for compressing and decompressing
|
---|
| 454 | files. It provides the highest compression generally available
|
---|
[5a58876] | 455 | and is useful for decompressing packages XZ or LZMA format.</para>
|
---|
[7002213] | 456 | </listitem>
|
---|
| 457 |
|
---|
[a26951e] | 458 | <listitem>
|
---|
| 459 | <para>Zlib</para>
|
---|
| 460 |
|
---|
| 461 | <para>This package contains compression and decompression routines
|
---|
[1c72dda] | 462 | used by some programs.</para>
|
---|
[a26951e] | 463 | </listitem>
|
---|
| 464 |
|
---|
| 465 | </itemizedlist>
|
---|
| 466 |
|
---|
| 467 | </sect1>
|
---|
| 468 |
|
---|