在本章中我们将编译和安装一个最小的Linux系统。这个系统只包含必要的工具,用来在下一章中编译最终的LFS系统。
创建这个最小系统分为两步:首先我们创建一个不依赖于主系统的全新工具链(包括编译器,汇编器,连接器和库文件),然后用它来编译其他重要工具。
本章中编译的文件将安装在$LFS/tools目录下,这是为了把它们和下一章要安装的文件区分开。由于本章编译的软件都是临时性的,我们不想让它们污染将来的LFS系统。
学习Linux系统组成的关键是准确了解每个包是用来做什么的,为什么用户或系统需要它。为了达到这个目的,我们在安装指导之前给出了每个包的简短说明,要了解软件包中的程序的简短说明,请参考附录 A中的相应部份。
我们的安装指导假设你使用的shell是bash。我们还假设你在解压了软件包后,已经用cd进入了解压的那个源码目录,然后才执行编译命令。
许多包必须打补丁后才能编译,但我们只在需要解决某个问题时才打补丁。通常这些补丁在本章和下一章都要打,但有的补丁只在其中一章里用到。所以如果你发现下载了一个补丁,但却没有找到使用它的指导,不要为之烦恼。
在安装一些包的过程中,你将看到许多的警告出现在屏幕上,这是正常的,你可以忽略它。它们大多是说不合适而不是非法的C或C++语法。 这是因为C语言的标准变化而造成的,有的软件仍使用老式的标准 ,这不是什么真正的问题。
除非 告诉你不要删除源码,一般来说,安装了一个软件包后,都要把编译过的源码目录删除 -- 既为了整洁,也为了节约空间.
在你开始之前,确定一下LFS环境变量的值是正确的(如果你决定用它的话)。运行以下命令:
echo $LFS |
看看输出的结果是否包含正确的LFS分区加载点路径,如果你前面按我们的例子来做的话,那就是 /mnt/lfs 。