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