就像前面所说的,LFS 的目标是为了建立一个完整的,基础级的可用系统。 这包括在提供一个相对较小的基础系统时,需要再生自己的全部软件包,从这个小基础系统开始,可以按照用户的选择定制一个更完整的系统。 这并不意味着 LFS 是可能的最小系统。它包括一些重要担不是必需的软件包。下面列出了本书中每个文件包的理由:
Autoconf
此软件包包含了能从开发者模板生成用于自动配置源代码的 shell 脚本。 它通常需要更新 后重建一个软件包来构建程序。
Automake
此包包含从模板生成 Make 文件的程序。 它通常需要更新 后重建一个软件包来构建程序。
Bash
此包满足 LSB 核心需求,来为系统提供一个Bourne Shell 接口。 之所以选择它,而不是其他shell 包,是因为它的基本shell 功能之外的通用和性能。
Binutils
此包包含了一个链接器,一个汇编器和其他处理目标文件的工具。
Bison
此包包含编译其他 LFS 程序所需要的 yacc (Yet Another Compiler Compiler) 的 GNU 版
Bzip2
此包包含压缩和解压缩文件的程序。被用来解压缩很多 LFS 软件包。
Coreutils
此包包含一些显示和操作文件和目录的必备程序。
DejaGNU
此包包含测试其他程序的框架。它只在临时工具链中安装。
Diffutils
此包包含显示两个文件或目录之间差异的程序。
Expect
此包包含一个通过执行脚本对话框与其它交互式程序通信的工具。通常用于测试其他软件包。仅在临时工具链中安装。
E2fsprogs
此包包含处理 ext2, ext3 和 ext4 文件系统的工具。这些是 Linux 支持的最常用,并经过彻底测试的文件系统。
File
此包包含一个判断给定文件类型的工具。
Findutils
此包包含在文件系统中查找文件的程序。
Flex
此包包含一个能生成识别文本模式的程序的工具。它是 GNU 版的 lex (词法分析器) 程序。它被用来编译一些LFS软件包。
Gawk
此包包含处理文本文件的程序。它是 GNU 版的 awk (Aho-Weinberg-Kernighan).
Gcc
此包包含 GNU 编译器集合。它包括 C 和 C++ 及一些没有被 LFS 编译的编译器。
GDBM
此包包含 GNU 数据库管理器。它被另一个 LFS 软件包( Man-DB)使用
Gettext
此包包含用于许多软件包的国际化和本地化的工具和库。
Glibc
此包包含主要的 C 库。没有它 Linux 程序就不能运行。
GMP
此包包含数学库,它们为任意精度计算提供了有用的函数。 编译Gcc时需要它。
Grep
此包包含在文件中搜索的程序。
Groff
此包包含软件包包含几个处理和格式化文本的程序。这些程序的一个重要功能是格式化 man 手册页。
GRUB
此包是 Grand 统一引导装载程序。它是几个可用的引导装载程序之一,但它是最灵活的。
Gzip
此包包含压缩和解压缩文件的程序。
Iana-etc
此包为网络服务和协议提供数据。它需要启用正确的网络功能。
Inetutils
此包包含基本的网络管理的程序。
IProute2
此包包含基本的和高级的基于IPv4 和 IPv6 网络的程序。 选择它而不是其他通用的网络工具软件包(net-tools)是因为它的 IPv6 性能。
Kbd
此包包含非美国键盘的键盘映射表和键盘工具。
Less
此包包含一个很好用的文本文件查看器,在显示文件的内容时允许上下滚屏。
Libtool
此包包含 GNU 通用库支持脚本。它将使用共享库的复杂性封装到统一的,可移植的接口。在其他的 LFS 软件包测试工具中需要它。
Linux Kernel
此包是操作系统。它是 GNU/Linux 环境中的 Linux。
M4
此包包含一个通用的文本宏处理器,用于为其他程序编译工具。
Make
此包包含一个直接编译软件包的程序。LFS 中几乎每个软件包都需要它。
Man-DB
此包包含查找和显示 man 手册页的程序。选择它代替 man 软件包是由于它卓越的国际化能力。它提供了 man 程序。
Man-pages
此包包含基本的 Linux man 手册页的实际内容。
Module-Init-Tools
此包包含管理 Linux 内核模块所需的程序。
MPFR
此包包含用于多倍精度运算的函数。Gcc 需要它。
Ncurses
此包包含字符终端处理库。它通常用于提供一个菜单系统的游标控制。
Patch
此包包含一个根据补丁文件来修改或建立文件的程序,补丁文件通常是用 diff 程序创建的。 一些 LFS 软件包的编译过程会需要它。
Perl
此包是运行时语言 PERL 的解释程序。
Pkg-config
此包包含一个工具,它在配置和编译可执行文件的过程中,通过include目录和/或 library目录构建工具。很多 LFS 软件包都需要它。
Procps
此包包含用于监视系统进程的程序。
Psmisc
此包包含用于显示进程信息的程序。
Readline
此包是一个提供命令行编辑和历史纪录功能的库集合。它被 Bash 使用。
Sed
此包允许在没有用编辑器打开的情况下编辑文本文件。大多数 LFS 软件包配置脚本也需要它。
Shadow
此包包含在安全方式下处理密码的程序。
Sysklogd
此包包含记录系统日志的程序,比如内核或守护进程处理意外事务的日志。
Sysvinit
此包提供 init 程序,它是Linux系统上所有其他进程的父进程。
Tar
此包为 LFS 中使用的几乎所有软件包提供归档和展开功能。
Tcl
此包包含LFS 软件包中很多测试组件会用到的工具命令语言(Tool Command Language)。 它仅在临时工具链中安装。
Texinfo
此包包含用于读取、写入、转换 Info 文档的程序。它用于很多 LFS 软件包的安装过程。
Udev
此包包含用于动态建立设备节点的程序。 它是在 /dev 目录下创建数以千计静态设备的一个替代品。
Util-linux-ng
此包包含很多工具程序。 其中包括处理文件系统,控制台,分区和日志的工具
Vim
此包包含一个编辑器。之所以选择它,是因为它与经典的 vi 编辑器兼容,以及它大量强大的功能。对很多用户来说,编辑器是非常个性化的选择, 如果需要,你可以将它替换成任何其他的编辑器。
Zlib
此包包含用于一些程序的压缩和解压缩工具。