前言 ☀️ 介绍 LFS 是什么? 为什么要使用 LFS? ❤️ LFS 文档 ???? 前言 最近,对 LFS(Linux From Scratch)颇感兴趣,因此打算开一个专栏来详细记录????...首先,放上 LFS 的官网:LFS Project! ☀️ 介绍 LFS 是什么?...Linux From Scratch (LFS) 是一个项目,可以理解为是一本指南,用于教我们如何一步步 DIY 自己的 Linux 系统!...1、LFS 帮助我们更好的理解 Linux 是如何正常运转 构建 LFS 会教我们有关 Linux 运转的所有知识,以及事物如何协同工作并相互依赖。...2、LFS 可以创建极其精简的 Linux 系统 当安装那些常规的 Linux 系统,你往往迫不得已安装那些你用不到的(甚至你都不知道它们是干什么的)程序。这些程序也许会浪费你的硬件资源。
Readline 软件包包含一些提供命令行编辑和历史记录功能的库。...安装 Readline 解压软件包: cd /sources tar xf readline-8.1.tar.gz cd readline-8.1 重新安装 Readline 会导致旧版本的库被重命名为...这一般不是问题,但某些情况下会触发 ldconfig 的一个链接 bug。 运行下面的两条 sed 命令防止这种情况: sed -i '/MV....doc/readline-8.1 安装完成后清理工作: cd .. rm -rf readline-8.1 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
Flex 软件包包含一个工具,用于生成在文本中识别模式的程序。...flex-2.6.4 \ --disable-static && make && make check && make install;} 个别程序还不知道 flex,并试图去运行它的前身...为了支持这些程序,创建一个名为 lex 的符号链接,它运行 flex 并启动其模拟 lex 的模式: ln -sv flex /usr/bin/lex 安装完成后清理工作: cd .. rm -rf flex...-2.6.4 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
DejaGnu 包含使用 GNU 工具运行测试套件的框架。它是用 expect 编写的,后者又使用 Tcl (工具命令语言)。...安装 DejaGNU 解压软件包: cd /sources tar xf dejagnu-1.6.3.tar.gz cd dejagnu-1.6.3 DejaGNU 开发者建议在专用的目录中进行构建:...make check 安装完成后清理工作: cd ../.. rm -rf dejagnu-1.6.3 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
make install-html;} 安装完成后清理工作: cd .. rm -rf mpfr-4.1.0 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
Util-linux 软件包包含若干工具程序。这些程序中有处理文件系统、终端、分区和消息的工具。...安装 Util-linux 解压软件包: cd /sources tar -xf util-linux-2.37.2.tar.xz cd util-linux-2.37.2 准备安装 Util-linux...lib/hwclock/adjtime \ --libdir=/usr/lib \ --docdir=/usr/share/doc/util-linux...chown -Rv tester . su tester -c "make -k check" 安装该软件包: make install 安装完成后清理工作: cd .. rm -rf util-linux...-2.37.2 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
LFS 有什么优势呢?现在看来,它可以提供最快和最小的Linux。但是最大的优势就是,安装LFS是菜鸟变成高手的捷径。...如果是,我们期盼你成功完成LFS系统加入我们LFS爱好者的行列! LFS详解 LFS存在的一个重要原因是可以帮助人们学习Linux系统的内部是如何工作的。...构建一个LFS系统会帮助演示是什么使Linux运转,各种组件如何在一起互相依赖的工作。最好的事情之一,是这种学习的经历给予的是一种能力,能够定制满足您自己需要的Linux。...LFS 的一个关键的好处是它让用户对于系统有更多的控制,而不是依赖于某些人的Linux 实现。在 LFS 的世界里,你是坐在司机的位置,掌控系统的每一个细节,比如目录层次和启动脚本配置。...LFS 提供房子的框架蓝图,但是需要您去建筑它。LFS 包含了在这过程中调整计划的自由,定制满足用户的需要和参考。 用户定制的 linux 系统的另一个好处是安全性。
D-bus 是一个消息总线系统,即应用程序之间互相通信的一种简单方式。...另外,消息总线被构建在一个通用的一对一消息传递网络上,它可以被任意两个程序用于直接通信 (不需通过消息总线守护进程)。.../dbus/pid \ --with-system-socket=/run/dbus/system_bus_socket 编译该软件包: make 该软件包有测试套件,但需要 LFS...没有包含的一些软件包。.../var/lib/dbus 安装完成后清理工作: cd .. rm -rf dbus-1.12.20 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
Zstandard 是一种实时压缩算法,提供了较高的压缩比。它具有很宽的压缩比/速度权衡范围,同时支持具有非常快速的解压缩。...usr/lib/libzstd.a 安装完成后清理工作: cd .. rm -rf zstd-1.5.0 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
Binutils 包含汇编器、链接器以及其他用于处理目标文件的工具。...在运行 Binutils 和 GCC 的测试套件前必须解决这个问题。 上游开发者提供了一个补丁,它能修复在构建一些软件包时出现的问题。应用该补丁: patch -Np1 -i ...../binutils-2.37-upstream_fix-1.patch 构建系统中的一处错误导致软件包附带的 man 页面为空。...文档推荐在一个专用的构建目录中构建 Binutils: mkdir -v build cd build 准备编译 Binutils: .....: cd ../.. rm -rf binutils-2.37 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
Linux 软件包包含 Linux 内核。...下面的命令是机器是 x86_64 体系结构: cp -iv arch/x86_64/boot/bzImage /boot/vmlinuz-5.13.12-lfs-11.0-systemd System.map...cp -r Documentation/* /usr/share/doc/linux-5.13.12 需要注意的是,在内核源代码目录中可能有不属于 root 的文件。...然而,Linux 源代码目录树一般会被保留较长时间,这样创建者当时使用的用户 ID 就可能被分配给本机的某个用户,导致该用户拥有内核源代码的写权限。...配置 Linux 内核模块加载顺序 多数情况下 Linux 内核模块可以自动加载,但有时需要指定加载顺序。
Expect 软件包包含通过脚本控制的对话,自动化 telnet,ftp,passwd,fsck,rlogin,以及 tip 等交互应用的工具。...Expect 对于测试这类程序也很有用,它简化了这类通过其他方式很难完成的工作。DejaGnu 框架是使用 Expect 编写的。...libexpect5.45.4.so /usr/lib 安装完成后清理工作: cd .. rm -rf expect5.45.4 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
大多数使用以下命令的用户不会遇到什么困难。但是,如果打错了命令,很容易导致新系统无法使用,因此在运行 strip 命令前,最好备份 LFS 系统的当前状态。 一些库的调试符号需要保存在单独的文件中。...之后在 BLFS 中,如果使用 valgrind 或 gdb 运行退化测试,则需要这些调试信息的存在。 需要注意的是,strip 命令会覆盖它正在处理的二进制程序或库文件。...这可能导致正在使用该文件中代码或数据的进程崩溃。如果运行 strip 本身的进程受到影响,则可能导致正在被处理的程序或库完全损坏。这可能导致系统完全不可用。...save_usrlib="$(cd /usr/lib; ls ld-linux*) libc.so.6 libthread_db.so.1...---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。 ❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️
File 软件包包含用于确定给定文件类型的工具。...&& make install;} 安装完成后清理工作: cd .. rm -rf file-5.40 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
最后,清理在执行测试的过程中遗留的一些文件: rm -rf /tmp/* 现在需要登出,并使用新的 chroot 命令行重新进入 chroot 环境。...从现在起,在退出并重新进入 chroot 环境时,要使用下面的修改过的 chroot 命令: logout chroot "$LFS" /usr/bin/env -i \ HOME...=/root TERM="$TERM" \ PS1='(lfs chroot) \u:\w\$ ' \ PATH=/usr/bin:/usr/sbin...正如我们已经讨论过的,它们在链接到共享库,特别是使用 autotools 以外的构建系统时,是不必要,甚至有害的。...执行命令删除它: find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf 最后,移除上文开始时创建的临时 ‘tester’ 用户账户
本文讨论如何配置 systemd-timedated 系统服务,它的作用是配置系统时钟和时区。...如果这个时间和您的手表显示的一致,则说明硬件时钟被设定为本地时间。相反,如果 hwclock 输出的时间不是本地时间,则硬件时钟很可能被设定为 UTC 时间。...根据您的时区,在 hwclock 显示的时间上加减对应的小时数,进行进一步的验证。例如,如果您现在处于莫斯科时区,即 GMT -0700,在本地时间上加 7 小时,再进行比较。...该守护程序没有被设计为替代现有成熟的 NTP 守护程序,而是一个仅仅实现了 SNTP 协议的客户端,可以用于一些不太复杂的任务,或是资源紧张的系统。...---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。 ❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️
Util-linux 软件包其它实用程序。包括处理文件系统、控制台、分区以及消息等工具。...-2.26.tar.xz cd util-linux-2.26 准备编译 Util-linux: ....为了运行测试套件,必须保证当前运行 的系统中用于内核的 CONFIG_SCSI_DEBUG 选项可用,还必须保证以一个模块的方式编译。 把它构建到内核中可以防止启动。...如果需要的话,可以在重启进入完整的 LFS 系统后用以下命令运行该测试: bash tests/run.sh --srcdir=$PWD --builddir=$PWD 安装软件包: make install...安装完成后清理工作: cd .. rm -rf util-linux-2.26 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
E2fsprogs 软件包包含处理 ext2 文件系统的工具。此外它也支持 ext3 和 ext4 日志文件系统。...E2fsprogs 解压软件包: cd /sources tar -xf e2fsprogs-1.46.4.tar.gz cd e2fsprogs-1.46.4 E2fsprogs 文档推荐在源代码目录树中的一个子目录内构建该软件包...安装该软件包: make install 删除无用的静态库: rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a 该软件包安装了一个 gzip 压缩的....info 文件,却没有更新系统的 dir 文件。...com_err.info 安装完成后清理工作: cd ../.. rm -rf e2fsprogs-1.46.4 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
Systemd 软件包包含控制系统引导、运行和关闭的程序。.../systemd-249-upstream_fixes-1.patch 从默认的 udev 规则中删除不必要的组 render 和 sgx: sed -i -e 's/GROUP="render"/GROUP.../systemd-man-pages-249.tar.xz --strip-components=1 -C /usr/share/man 删除不必要的目录: rm -rf /usr/lib/pam.d...已知一个服务单元会导致并非由 systemd-networkd 提供网络配置的系统出现问题,禁用它: systemctl disable systemd-time-wait-sync.service...安装完成后清理工作: cd ../.. rm -rf systemd-249 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
&& make install;} 安装完成后清理工作: cd .. rm -rf bc-5.0.0 ---- 本次分享到此结束啦~ 如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力
领取专属 10元无门槛券
手把手带您无忧上云