LFS(Linux From Scratch)构建过程全记录(一):准备工作

时间:2025-04-09 16:22:05
Acl: 这个软件包包括了管理访问控制列表(ACL)的工具,用于定义文件和目录更细粒度的自主访问权。
Attr: 这个软件包包
括了管理文件系统的对象扩展属性的程序
Autoconf: 这个软件包包括了能根据开发者的模板自动生成配置源代码的 shell 脚本的程序。更新了构建过程之后重新构建软件包通常需要这个。
Automake: 这个软件包包括了从模板生成 Make 文件的程序。更新了构建过程之后重新构建软件包通常需要这个。
Bash: 这个软件包能满足提供到系统的 Bourne Shell 接口的 LSB 核心需求。由于其通用性和在基本 shell 功能上的扩展能力,所以选择它而不是其它的 shell 软件包。
Bc: 这个软件包提供了一种任意精度的数值处理语言。在构建 Linux 内核时需要它。
Binutils: 这个软件包包括了一个链接器、汇编器和其它处理对象文件的工具。编译 LFS 系统以及之上的大部分软件包需要这个软件包中的程序。
Bison: 这个软件包中有 yacc(Yet Another Compiler Compiler) 的 GNU 版本,需要用来构建一些其它的 LFS 程序。
Bzip2: 这个软件包包括了用来压缩和解压缩文件的程序。在解压缩很多 LFS 软件包的时候需要它。
Check: 这个软件包包括了一个用于其它程序的测试工具。它只安装在临时工具链中。
Coreutils: 这个软件包包括了一些查看和管理文件和目录的重要程序。在命令行里管理文件和每个 LFS 软件包的安装过程中需要它。
D-Bus: 这个软件包包括了一个用于提供消息总线的程序,消息总线是一种应用程序之间通信的简单方式。systemd 也需要它。
DejaGNU: 这个软件包包括了一个测试其它程序的框架。只安装在临时工具链中。
Diffutils: 这个软件包包括了一些显示文件和目录差异的程序。这些程序可以用来创建补丁,也用于很多软件包的构建过程。
E2fsprogs: 这个软件包包括了一些处理 ext2、ext3 和 ext4 文件系统的工具。这些是 Linux 上支持的最常用而且完全经过考验的文件系统。
Expat: 这个软件包包括了一个相对小的 XML 解析库。Perl 模块 XML::Parser 需要用到这个。
Expect: 这个软件包包括了一个生成与其它程序交互的脚本对话框的程序。通常用来测试其它软件包。只安装在临时工具链中。
File: 这个软件包包括了一个能判断给定文件的类型的工具。一些软件包需要用它来构建。
Findutils: 这个软件包包括了一些在文件系统中查找文件的程序。在很多软件包构建脚本中会用到它。
Flex: 这个软件包包括了一个能生成识别文本模式程序的工具。是 lex(lexical analyzer) 程序的 GNU 版本。构建很多 LFS 软件包需要用到它。
Gawk: 这个软件包包括了一些操作文本文件的程序。是 awk(Aho-Weinberg-Kernighan) 的 GNU 版本。在很多软件包的构建脚本中会用到它。
Gcc: 这个软件包是 GNU 编译器工具集。它包括 C 和 C++ 的编译器以及其它一些不是由 LFS 构建的软件包。
GDBM: 这个软件包包括了 GNU 数据库管理库。LFS 的另一个软件包 Man-DB 会用到它。
Gettext: 这个软件包包括了很多软件包国际化和本地化需要用到的工具和库。
Glibc: 这个软件包包括了主要的 C 语言库。缺少它 Linux 程序就运行不了。
GMP: 这个软件包包括了能提供任意精度数值运算的数学库。编译 Gcc 会用到它。
Gperf: 这个软件包包括了一个能从一个键集生成完美哈希函数的程序。sysetmd 会用到它。
Grep: 这个软件包包括了一些在文件中搜索的程序。大部分软件包的构建脚本会用到它。
Groff: 这个软件包包括了处理和格式化文本的程序。其中一个重要的功能是格式化 man 页面。
GRUB: 这个包是 Grand Unified Boot Loader。是可用的引导加载器之一,但最灵活。
Gzip: 这个包包括了一些压缩和解压缩文件的程序。解压很多 LFS 以及之上的软件包时会需要它。
Iana-etc: 这个软件包提供了网络服务和协议的数据。启用合适的网络功能会用到它。
Inetutils: 这个包包括了基本网络管理的程序。
Intltool: 这个包包括了能从源文件中抽取可翻译字符串的工具。
IProute2: 这个包包括了一些基本和高级的 IPv4 和 IPv6 网络的程序。由于其 IPv6 功能,所以选择它而不选择其它的常见网络工具包(net-tools)。
Kbd: 这个包包括了一些键盘映射文件,用于非 US 键盘的键盘工具以及一些控制台字体。
Kmod: 这个软件包包括了一些用于管理 Linux 内核模块的程序。
Less: 这个软件包包括了一个很好的文本文件查看器,允许查看文件的时候向上或向下滚动。Man-DB 用它来查看 man 页面。
Libcap: 这个包实现了可以用于 Linux 内核的,从用户空间到 POSIX 1003.1e 的接口。
Libpipeline: 这个包包括了一个以灵活和便捷的方式操作子进程流水线的库。Man-DB 软件包会用到它。
Libtool: 这个软件包包括一些 GNU 通用库支持脚本。它降低了在一致、可移植的接口上使用共享库的复杂度。在其他 LFS 软件包的测试套件里需要它。
Linux Kernel: 这个包就是操作系统。即我们常说的 “GNU/Linux” 中的 “Linux”。
M4: 这个包包括了一个普通的文本宏处理器,作为其它程序的构建工具使用。
Make: 这个包包括了一个指导软件包构建的程序。LFS 中的几乎每个包都需要它。
Man-DB: 这个包包括了一些查找和查看 man 页面的程序。由于其更好的国际化功能,用来代替 man软件包。它提供了 man 程序。
Man-pages: 这个包包括了基本的 Linux man 页面的真正内容。
MPC: 这个包包括了复数运算的函数。Gcc 需要它。
MPFR: 这个包包括了多精度运算的函数。Gcc 需要它。
Ncurses: 这个包包括了一些处理字符界面的不依赖特定终端的库。通常用来为菜单系统提供光标控制。一些 LFS 的软件包会用到它。
Patch: 这个包包括了一个通过补丁文件来修改或新建文件的程序,补丁文件通常是由 diff 程序创建的。一些 LFS 软件包的构建过程会需要它。
Perl: 这个包包括了一个运行时语言 PERL 的解析器。一些 LFS 软件包的安装和测试套件会需要它。
Pkg-config: 这个包提供了一个返回已安装库或软件包的元数据的程序。
Procps-NG: 这个包包括了一些监视进程的程序。这些程序对系统管理非常有用,也用于 LFS 的启动脚本。
Psmisc: 这个包包括了一些显示运行中进程信息的程序。这些程序对系统管理非常有用。
Readline: 这个包提供了一些命令行编辑和历史功能的库。Bash 会使用它。
Sed: 这个包提供了不通过文本编辑器而直接编辑文本的功能。大部分 LFS 软件包的配置脚本需要它。
Shadow: 这个包包括了一些以安全方式处理密码的程序。
Systemd: 作为 Sysvinit 的替代品,这个包提供了一个 init 程序以及一些其它的引导和系统控制功能。很多 Linux 发行版都用它。
Tar: 这个软件包提供了归档和提取 LFS 中的几乎所有软件包的能力。
Tcl: 这个包包括了在很多 LFS 软件包测试套件中使用的工具命令语言。只安装在临时工具链中。
Texinfo: 这个包包括了一些读、写以及转换信息页面的程序。在很多 LFS 软件包的安装过程中会使用它。
Util-linux: 该软件包包括了许多工具。其中有处理文件系统、控制台、分区和消息的工具。
Vim: 这个包包括了一个编辑器。由于 vi 编辑器的经典以及大量的强大功能而选择它。对很多用户来说一个编辑器是一个非常个人的选择,如果需要的话也可以选择其它编辑器。
XML::Parser: 这个包是和 Expat 交互的 Perl 模块。
XZ Utils: 这个包包括了一些压缩和解压缩文件的程序。通常它的压缩率最高,在解压 XZ 或者 LZMA 格式的软件包时非常有用。
Zlib: 这个包包括了一些程序所使用的压缩和解压缩功能。