从零构建 CentOS 的准备清单
一、目标与路径澄清
- 从零构建有两种常见目标:
- 在物理机或虚拟机上全新安装一套CentOS 系统(常规安装)。
- 以Docker 的 scratch 基础镜像为起点,构建自定义的极简 CentOS 基础镜像(容器场景)。
- 若你的目标是“像 LFS 那样从源码手工构建整个系统”,那对应的是Linux From Scratch路线,并非 CentOS 官方发行版的构建方式。下文分别给出两类准备要点。
二、全新安装 CentOS 的准备
- 硬件与系统要求
- 处理器:≥ 1 GHz;内存:≥ 1 GB(建议 ≥ 2 GB);存储:≥ 10 GB(建议 ≥ 20 GB);显示器:≥ 800×600;网络:建议可用。
- 镜像与介质
- 下载CentOS ISO(DVD/Minimal),使用Rufus或Etcher制作可启动 U 盘。
- 启动与安装
- 在 BIOS/UEFI 中设置USB 启动,进入安装界面后完成语言、时区、网络与主机名、安装目标(分区)、用户与 root 密码等配置,开始安装并重启。
- 安装后基础配置
- 使用包管理器更新系统(yum/dnf),安装常用工具(如vim、git、wget),按需配置firewalld与SELinux,确保网络连通与基础安全基线。
三、在 Docker 中以 scratch 构建 CentOS 基础镜像的准备
- 基础镜像选择
- 使用centos:7或centos:8等官方基础镜像作为起点,再从“scratch”思路定制最小化内容;注意“scratch”本身不含任何命令与包管理器。
- 构建环境与工具
- 安装Docker,准备好构建上下文(Dockerfile 与所需脚本/配置),确保可稳定拉取基础镜像与上传产物。
- 示例 Dockerfile 思路(从 centos 而非 scratch 起步)
- 以 centos 为基础,安装最小工具集,清理缓存,生成更小镜像:
- FROM centos:7
- RUN yum -y update && yum -y install --setopt=tsflags=nodocs vim net-tools && yum clean all
- CMD [“/bin/bash”]
- 说明:若严格从scratch开始,需要自行提供可执行程序与根文件系统,不适合常规应用交付。
四、若目标是 Linux From Scratch 路线的准备(非 CentOS 发行版)
- 构建宿主环境
- 准备一台稳定的物理机或虚拟机(如VirtualBox),为编译与 chroot 提供隔离环境,避免误操作影响宿主机。
- 分区与目录
- 创建专用分区(如**/mnt/lfs**),挂载并设定环境变量(如export LFS=/mnt/lfs),在 $LFS 下建立sources、tools、usr等目录,便于分阶段构建与隔离。
- 源码与文档
- 下载LFS 官方文档与软件包清单,按章节顺序准备工具链与基础系统组件(如binutils、gcc、glibc等),严格遵循版本与依赖顺序。
- 时间同步与工具链
- 使用NTP同步时间,避免构建过程因时间戳问题失败;准备必要的编译与测试工具,确保可完成交叉编译工具链与基础系统构建。