清理无用内容

如果你的 LFS 分区容量比较小,知道有些不必要的内容可以被删除也是挺好的。目前编译好的可执行文件和库大概会有 70MB 左右不需要的调试符号。

可以通过下面的命令移除这些符号:

strip --strip-debug /tools/lib/*
/usr/bin/strip --strip-unneeded /tools/{,s}bin/*

这两个命令会跳过一些文件,并提示不可识别的文件格式。大多数是脚本文件而不是二进制文件。同样还可以用宿主系统里的 strip 命令为 /tools 目录下的 strip 二进制文件清理无用内容。

注意不要对库文件使用 --strip-unneeded 选项。静态库会被损坏导致整个工具链将会需要全部重新编译。

更节省更多空间,还可以删除帮助文档:

rm -rf /tools/{,share}/{info,man,doc}

这个时候,你应该在 $LFS 分区中为下个阶段编译安装 Glibc 和 Gcc 预留至少 3GB 剩余空间。如果你可以编译安装 Glibc,那其他的就不会有问题了。

改变属主

当前,$LFS/tools 目录属于 lfs 用户,这是一个只存在于宿主系统上的帐号。

如果继续保持 $LFS/tools 目录的现状,其中的文件将属于一个没有相关联帐号的用户ID。这很危险,因为随后创建的用户有可能会分配到相同的用户ID,从而变成 $LFS/tools 目录及其中所有文件的属主,以致留下恶意操作这些文件的可能。

为了解决这个问题,你可以在随后新的 LFS 系统里创建 /etc/passwd 文件时增加一个 lfs 用户,并注意给它分配和宿主系统里相同的用户和组ID。

不过更好的方式是,通过下面的命令将 $LFS/tools 目录的属主改为 root 用户!

root 用户下执行:

export LFS=/mnt/lfs
chown -R root:root $LFS/tools

尽管 $LFS/tools 目录可以在 LFS 系统构建完成后删除,但仍然可以保留下来用于构建额外的相同版本 LFS 系统。备份 $LFS/tools 目录到底有多少好处取决于你个人。

注意: 以后部分的命令都必须以 root 用户身份执行而不再是 lfs 用户。另外,再次确认下 $LFS 变量在 root 用户环境下也有定义。



本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️