在了解了LFS的搭建过程后感觉第8章的软件太多了,我想知道哪些软件是必须安装的,所以测试了一下。
测试基于Linux From Scratch - Version 10.1
手册链接http://www.linuxfromscratch.org/lfs/view/stable/index.html
(在测试最后发现GRUB得在内核make前安装,不然最后系统启动时找不到文件)
前置环境配置如下:
交叉编译工具、临时编译工具构建完毕、第8章所有软件未装、第9章全部跳过、直接配置linux-5.10.17
执行 make menuconfig
是因为在第8章清理时将交叉编译工具删掉了
不清理掉交叉编译工具
再执行到make menuconfig时会报错,提示要装flex
flex(用于生成识别文本中的模式的程序),这里忘了截图了
内核配置完成后,make时报错,提示要装openssl
装openssl时make过程报错,提示要装zlib
zlib(用于压缩和解压缩)
openssl和zlib装好后,内核make时报错,提示要装libelf(在elfutils里)
Libelf(用于处理ELF<可执行和可链接格式>文件的库)
装elfuils时,解压需要安装工具bzip2或lbzip2
bzip2(用于压缩和解压缩文件。使用bzip2压缩文本文件比使用传统的gzip产生更好的压缩百分比。)
elfuils装好后,内核make时报错,提示要装bc
bc(用于处理任意精度数字计算)
所有依赖文件安装好后内核make,提示成功
之后内核模块安装(make modules_install)结束时会弹出一个警告,提示要装depmod(在kmod里)
kmod(用于加载内核模块的库和实用程序)
在配置kmod时报错,提示要装pkg-config
pkg-config(用于在包安装的配置和make阶段将include路径和/或库路径传递给构建工程)
装好pkg-config后,继续配置kmod,依然报错,提示要装libzstd(在zstd里)
zstd(实时压缩算法,提供高压缩比。提供了一个非常广泛的压缩/速度折衷,同时支持一个非常快的解码器。)
装好kmod后,再安装内核模块(make modules_install),警告消除
下面步骤有误,不能以挂载的方式复制/mnt/lfs/boot中的文件到/boot下,因为在后面章节的操作中会取消对$LFS/boot的挂载
应该在grub配置完成后,以 cp -r /mnt/lfs/boot/* /boot/的方式复制(复制前先清空/boot目录下文件,有一个文件无法删除)
最终系统可以构建成功,但是除了用来看看根本没有任何作用,连文件操作的权限都没有…
大致来说只是构建了一个壳,想要搭建一个能用的干净的系统还得继续研究…