笔者从虚拟机换回了开发板,系统仍然是ubuntu。
在上篇文章,我们完成lfs的硬件准备和磁盘分区。
最终达成这个效果:

那么接下来就是软件包和补丁的安装,已经最后的准备工作了。
1. 安装包与补丁的安装
打开LFS的官方文档,我们可以看到官方已经把所有要下载的安装包的官方链接已经给出了。

那么剩下的步骤就是安装了。
但是这里多链接一个一个的手动安装还是太花费时间了,作为程序员还是不想要把时间花在这样的重复劳动上。为此我找到了一个所有软件链接的整合版本,安装就只需要一个指令即可。

安装包与补丁
拿到这些链接后,打开linux,创建一个文本文件,假设叫urls.txt。
把所有链接复制到文件中后。下面我介绍两个指令给读者选择,选择一个喜欢的指令下载即可。
1.1 wget指令
在终端内使用wget指令批量下载文件。
代码语言:bash复制
wget -i urls.txt
-i 参数告诉wget从urls.txt文件中读取链接并下载
当然我们在下载时需要下载到指定的目录中mnt/lfs.sources。
代码语言:bash复制
wget -i urls.txt -P /mnt/lfs/sources
1.2 aria2指令
如果你希望提高下载的速度,可以使用aria2,它支持多线程下载,速度更快。
如果你没有安装,输入以下指令
代码语言:bash复制
sudo apt install -y
下载格式:
代码语言:bash复制
aria2c -i urls.txt
下载到指定目录
代码语言:bash复制
aria2c -i urls.txt -d /mnt/lfs/sources
那么这两种指令就介绍完毕了,你可以选择你喜欢的一个安装即可。
相信大家都知道,在安装国外软件时,下载速度都超级慢,所以你肯定要挂个梯子什么的。如果没有,我这还有一种方法。
1.3 使用阿里云的整合包
龟速的下载速度是很难忍受的,LFS这个项目在世界范围都是很受欢迎的,国内也不例外,所以肯定会有人帮我做软件包的整合的。我找的是阿里云的整合包,链接如下:阿里云
读者在下载时,应挑选比较新的软件包安装,我下载的24年9月的,我使用的官方文档也是24年9月的版本。
把压缩包解压后,软件包和补丁就都出来了:

还是非常多的。
2. 最后的准备阶段(环境配置)
根据的文档的指示,我们选哟创建一个lfs的用户,这个在之前我就让大家创建好了,同时还要许多目录的创建,这个也是如此。
所以最后的准备阶段吗,我只会讲解在前文我们没有做的工作。
为bash创建两个新的启动脚本,以lfs的身份,执行以下命令,创建一个新的.bash_profile.
代码语言:bash复制
cat > ~/.bash_profile <p>在以 lfs 用户登录或从其他用户使用带 “<em>-</em>” 选项的 su 命令切换到 lfs 用户时,初始的 shell 是一个<em>登录</em> shell。它读取宿主系统的 /etc/profile 文件 (可能包含一些设置和环境变量),然后读取 .bash_profile。我们在 .bash_profile 中使用 exec env -i.../bin/bash 命令,新建一个除了 HOME, TERM 以及 PS1 外没有任何环境变量的 shell 并替换当前 shell。这可以防止宿主环境中不需要和有潜在风险的环境变量进入构建环境。</p><p>新的 shell 实例是 <em>非登录</em> shell,它不会读取和执行 /etc/profile 或者 .bash_profile 的内容,而是读取并执行 .bashrc 文件。现在我们创建一个 .bashrc 文件:</p>代码语言:bash<svg width="16" height="16" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>复制<pre class="prism-token token line-numbers bash">cat > ~/.bashrc <figure class=""><img src="https://img.php.cn/upload/article/001/503/042/174488161552528.jpg" alt="【从0构建Linux系统/LFS】环境配置及软件包与补丁的安装"></figure><p>具体内容的原因请访问官方文档:官方文档</p><p>最后,为了保证构建临时工具所需的环境准备就绪,强制 bash shell 读取刚才创建的配置文件:</p>代码语言:bash<svg width="16" style="max-width:90%" viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 15.5V3.5H14.5V15.5H4.5ZM12.5 5.5H6.5V13.5H12.5V5.5ZM9.5 2.5H3.5V12.5H1.5V0.5H11.5V2.5H9.5Z" fill="currentcolor"></path></svg>复制<pre class="prism-token token line-numbers bash">source ~/.bash_profile
在文档的最后还有关于SBU和测试套件的解释,请大家自行查阅。
3 .总结
由此我们就完成了从0构建Linux系统的全部的准备阶段了,在下一篇文章就要开始构建 LFS 交叉工具链和临时工具。
期待你的关注,本系列长期更新。