|
Linux From Scratch 被称为linux定制指南,原本的含义为,自由选择linux的发布包,自己从头编译一个完整的linux运行系统。Linux From Scratch 一直以来,被认为是高手的事情,初学者一直望而却步。其实,就trc的观点看来,如果做为一个初学者能自己编译好一个完整的LFS系统,那么对于你的linux进阶学习将大有益处,从此往后,你几乎可以独立解决linux的大部分问题和了解核心的设置。好了,闲话少说,从今天起,让我们开始LFS之旅……
From Scratch,这是一个英文短语,意思为“从零起步,从无到有”。那么,我们从哪里开始呢?先简要向大家介绍一下本教程的结构,本教程分为三大过程,分别为介绍、构建前的准备和开始构建。我们先来看第一过程:
第一过程:介绍
我们将用一个已安装好的 Linux 发行版(例如 Debian、ubuntu、Red Hat、SuSE)来构建 LFS 系统。这个已存在的 Linux 系统(宿主系统)将作为建立新系统的起点,提供包括编译器、连接器和 Shell 等创建新系统的必要程序。您安装这个发行版的时候,需要选择"development(开发/编程)"选项,以便可以使用这些工具。
另一个选择是使用 Linux From Scratch 的 LiveCD 。这个CD是一个非常好的宿主系统,它包含了构建一个完整 LFS 系统所需要的一切工具,另外还包含了所有的软件包源代码、补丁和一个本书的拷贝。使用这个CD ,你可以不需要任何网络连接或者下载任何额外的东西。要了解更多关于 LFS LiveCD 的信息或者想下载它,请查看:http://www.linuxfromscratch.org/livecd/ 。
第2部分 描述了怎样创建一个新的 Linux 本地分区和文件系统,新的 LFS 系统将在该分区上编译和安装。第3部分 解释了构建一个 LFS 系统需要那些软件包和补丁,以及怎样把它们存放到新文件系统上。第4部分 讨论了建立一个适当的工作环境。请仔细阅读 第4部分 ,因为它讨论了在开始 第5部分 及其后面的步骤之前,开发者需要知道的几个重要问题。
第5部分 解释了形成一个基本开发套件(或称为工具链)所需的许多软件的安装,这个工具链将被用来构建 第6部分 中的实际系统。其中一些软件包需要解决循环依赖关系:例如,要编译一个编译器,您首先就需要一个编译器。
第5部分 告诉用户如何第一遍编译工具链,包括 Binutils 和 GCC(第一遍主要的意思就是指这两个核心软件包后面还将第二次安装)。这些软件包里的程序将静态连接以便在使用时独立于宿主系统。接下来的步骤是编译 Glibc ,就是 C 运行时库。Glibc 将由第一遍建立的工具链程序编译。然后将第二遍编译的工具链动态连接到刚刚编译好的 Glibc 库上。第5部分 余下的软件包将使用第二遍建立的工具链来编译。完成这些步骤之后,LFS 的安装过程除了正在运行的内核外,不再依赖于宿主系统。
为了不依赖宿主系统,初看起来我们需要做很多工作。Section 5.2, "工具链技术说明"提供了一个完整的技术说明,包括静态连接的程序和动态连接的程序之间的差异。
第6部分 将构建完整的 LFS 系统。chroot(改变root)程序用来进入一个虚拟的环境并开始一个新的 Shell,其根目录是 LFS 分区。这非常类似于重启并让内核将 LFS 分区挂载为根分区。系统实际上并没有重启,而是由 chroot 代替了,因为建立一个可启动的系统需要做一些现在还不需要做的额外工作。主要的好处在于"chrooting"允许您在构建 LFS 的同时可以继续使用宿主系统。在等待软件包编译完成的时候,用户可以切换到不同的虚拟控制台(VC)或者 X 桌面,就像平常一样继续使用计算机。
为了完成安装,第7部分 设置启动脚本,第8部分 安装内核和启动引导程序。第9部分 包含在本书之外获得进一步 LFS 体验的信息。在本书中所有步骤都完成之后,计算机就已经准备好重启进入新的 LFS 系统了。
以上就是概略的过程,在接下来的章节和软件包描述中会讨论每一步的细节。看似复杂的项目将详细阐明,随着读者踏上 LFS 冒险之路,每一件事情都将依序出现。
|