【LFS/从0构建Linux系统】软件包与补丁安装及环境配置

笔者从虚拟机换回了开发板,系统仍然是Ubuntu。

文章目录

  • [1. 安装包与补丁的安装](#1. 安装包与补丁的安装)
    • [1.1 wget指令](#1.1 wget指令)
    • [1.2 aria2指令](#1.2 aria2指令)
    • [1.3 使用阿里云的整合包](#1.3 使用阿里云的整合包)
  • [2. 最后的准备阶段(环境配置)](#2. 最后的准备阶段(环境配置))
  • [3 .总结](#3 .总结)

在上篇文章,我们完成lfs的硬件准备和磁盘分区。
最终达成这个效果:

那么接下来就是软件包和补丁的安装,已经最后的准备工作了。

1. 安装包与补丁的安装

打开LFS的官方文档,我们可以看到官方已经把所有要下载的安装包的官方链接已经给出了。

那么剩下的步骤就是安装了。

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

安装包与补丁

拿到这些链接后,打开Linux,创建一个文本文件,假设叫urls.txt

把所有链接复制到文件中后。下面我介绍两个指令给读者选择,选择一个喜欢的指令下载即可。

1.1 wget指令

在终端内使用wget指令批量下载文件。

bash 复制代码
wget -i urls.txt

-i 参数告诉wgeturls.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 << "EOF"
`exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash`
EOF

在以 lfs 用户登录或从其他用户使用带 "- " 选项的 su 命令切换到 lfs 用户时,初始的 shell 是一个_登录_ shell。它读取宿主系统的 /etc/profile 文件 (可能包含一些设置和环境变量),然后读取 .bash_profile。我们在 .bash_profile 中使用 exec env -i.../bin/bash 命令,新建一个除了 HOME, TERM 以及 PS1 外没有任何环境变量的 shell 并替换当前 shell。这可以防止宿主环境中不需要和有潜在风险的环境变量进入构建环境。

新的 shell 实例是 非登录 shell,它不会读取和执行 /etc/profile 或者 .bash_profile 的内容,而是读取并执行 .bashrc 文件。现在我们创建一个 .bashrc 文件:

bash 复制代码
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/usr/bin
if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
PATH=$LFS/tools/bin:$PATH
CONFIG_SITE=$LFS/usr/share/config.site
export LFS LC_ALL LFS_TGT PATH CONFIG_SITE
export MAKEFLAGS=-j$(nproc)
EOF

具体内容的原因请访问官方文档:官方文档

最后,为了保证构建临时工具所需的环境准备就绪,强制 bash shell 读取刚才创建的配置文件:

bash 复制代码
source ~/.bash_profile

在文档的最后还有关于SBU和测试套件的解释,请大家自行查阅。

3 .总结

由此我们就完成了从0构建Linux系统的全部的准备阶段了,在下一篇文章就要开始构建 LFS 交叉工具链和临时工具。

期待你的关注,本系列长期更新。

相关推荐
Feng.Lee几秒前
性能测试中CPU风险诊断方法有哪些
服务器·网络·性能优化
北京-宏哥1 分钟前
PC端自动化测试实战教程-1-pywinauto 环境搭建(详细教程)
windows·python·测试工具·pycharm·自动化
记得多喝水o12 分钟前
Linux网络IOv1.1介绍-纯PDF版
linux
黑客老陈24 分钟前
区块链 智能合约安全 | 回滚攻击
运维·服务器·网络·安全·区块链·php·智能合约
修炼室1 小时前
提升开发效率:Bash 脚本自动化环境搭建与依赖安装
linux·开发语言·自动化·bash
vortex51 小时前
Bash 中 nohup 与 & 的区别及用法解析
linux·开发语言·bash
king2wang1 小时前
Windows 服务器访问慢解决办法
运维·服务器·windows
敲上瘾3 小时前
深入理解Linux系统内存中文件结构以及缓冲区,模拟实现c语言库文件接口
linux·服务器·c语言·c++·系统架构
Spiffo_Sir4 小时前
【Spiffo】环境配置:Linux下LVGL项目构建(含v8、v9)、针对git不到子项目的手动组装
linux·c语言