LFS Linux From Scratch 笔记(经验非教程)

Posted Welcome to spaceship9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LFS Linux From Scratch 笔记(经验非教程)相关的知识,希望对你有一定的参考价值。

做了一个自己的DIY Linux系统。从编译每一行代码,建立每一个文件系统结构开始。

创造自己的Linux系统,不同于任何发行版。按照的教程是来自 linuxfromscratch.org 来的。我选用的是systemd lfs 8.0 稳定版的教程。

 

说说这里面遇到的一些问题和自己解决的方法。

用的ubuntu16.04 64位的处理器环境。这个叫host system(gcc5.4.0)。需要给这个host system安装很多编译需要的环境。用这个机器来编译下一个机器的所有运行环境。

 

有个version

还需要一个额外的硬盘。这个可以在virtualbox里面挂载一个。由于编译完的空间占用很大,比如说编译一个gcc产生的文件就高达2.5G,所以,需要一个大一点的硬盘。官方说至少6G。我做过多次的LFS,经验告诉我至少12G,更好是20G。

 

这个额外的硬盘是用来专门容纳制作好的系统的。当然你也可以用一个大一点的文件系统挂载成一个硬盘。

 

有很多包需要编译的。这里着重说一下。期间有多个包要多次编译。例如binutils、gcc、glibc。为什么要多次编译呢?

第一次用host system的 gcc 5.4.0 编译binutils, gcc (6.3.0),是为了后来用已经编译好的gcc 6.3.0再去编译剩下部分的binutils、gcc、glibc。这样下面新系统上的软件都是同一个编译器6.3.0编译的软件了。

 

每次不同的设定,编译 例如binutils、gcc的时候,都要将之前的 源代码 文件夹删掉,重新解压,重新 configure,重新编译,重新安装。否则会出现不可逆转的错误。(例如chroot 新LFS系统后,gcc失效)

其他的编译后的源代码也可以删掉,留着也没什么用。如果下次用的话,可以留着。省点空间是好的。

其中有一些patch,例如glibc2.5 有一些patch需要打。可以用patch -p3 < ../somewhere.patch 打补丁。-p3 的意思是同目录下横跨三个 \ 斜杠目录,进行打补丁。打完补丁,再configure,再make,make install。

以上是关于LFS Linux From Scratch 笔记(经验非教程)的主要内容,如果未能解决你的问题,请参考以下文章

Linux From Scratch(LFS11.0)收尾工作

Linux From Scratch(LFS11.0)构建 LFS 系统 - 清理系统

Linux From Scratch(LFS11.0)构建 LFS 系统 - Diffutils-3.8

Linux From Scratch(LFS11.0)构建 LFS 系统 - Inetutils-2.1

Linux From Scratch(LFS11.0)构建 LFS 系统 - Less-590

Linux From Scratch(LFS11.0)构建 LFS 系统 - Ncurses-6.2