温馨提示×

Debian From Scratch如何测试

小樊
62
2025-10-08 12:56:04
栏目: 智能运维

1. 准备测试环境
为避免影响生产系统,需创建隔离的测试环境。推荐使用虚拟机(如VirtualBox)容器(如Docker)

  • Docker示例:docker run -it debian:latest /bin/bash,快速启动一个干净的Debian容器;
  • chroot环境:用debootstrap创建基本系统,将新构建的Debian系统挂载到隔离目录进行测试。

2. 安装必要测试工具
安装用于构建验证、依赖检查和测试套件运行的工具:

sudo apt install devscripts debhelper lintian pbuilder dejagnu
  • devscripts:提供debuild等命令,简化构建流程;
  • lintian:检查Debian软件包的合规性和潜在问题;
  • pbuilder:创建干净的构建环境,避免本地污染;
  • dejagnu:自动化测试框架,支持运行预定义的测试用例。

3. 构建系统并生成测试包
按照Debian From Scratch(DFS)步骤完成系统构建后,获取待测试的软件包(.deb文件)。若为自定义构建的软件包,可通过以下命令生成:

dpkg-buildpackage -us -uc  # 不签名构建,生成.deb文件

构建完成后,在上级目录获取生成的.deb包(如../package-name_version_arch.deb)。

4. 安装测试包
使用dpkg手动安装生成的.deb包,验证安装过程是否顺利:

sudo dpkg -i ../package-name_version_arch.deb

若安装失败,需检查依赖问题(可通过sudo apt --fix-broken install修复)。

5. 执行测试流程

  • 自动化测试:若软件包包含测试套件,使用dejagnudebian/rules test运行:
    dejagnu debian/rules test  # 运行预定义的测试用例
    
  • 手动测试:针对核心功能进行验证(如系统启动、网络连接、命令行工具执行),例如:
    ping -c 4 google.com  # 测试网络连通性
    ls /usr/bin | grep bash  # 验证bash是否安装
    
  • 依赖检查:用lintian扫描安装的包,确保符合Debian政策:
    lintian /var/cache/apt/archives/package-name_version_arch.deb
    
    关注“error”或“warning”级别的提示,修复潜在问题。

6. 验证系统稳定性

  • 重启测试:重启系统,确认所有服务正常启动(如systemd管理的sshapache等);
  • 压力测试:使用stress工具模拟高负载,检查系统资源(CPU、内存、磁盘)的稳定性:
    sudo apt install stress
    stress --cpu 4 --io 2 --vm 2 --vm-bytes 512M --timeout 60s  # 模拟4核CPU、2磁盘IO、2虚拟内存进程
    
  • 兼容性测试:若支持多架构,需在目标架构(如LoongArch、ARM)上进行交叉编译和测试,验证工具链配置(如loongarch64-linux-gnu-gcc)和二进制文件运行(如file hello确认架构)。

7. 收集与分析结果

  • 日志记录:保存测试过程中的输出(如dmesg内核日志、应用日志/var/log/syslog);
  • 缺陷跟踪:若发现问题,通过Debian Bug跟踪系统(bugs.debian.org)提交报告,包含复现步骤、日志和环境信息;
  • 测试报告:总结测试覆盖范围、发现的问题及修复情况,便于后续优化。

8. 清理测试环境
测试完成后,删除临时文件、容器或chroot环境,释放资源:

  • Docker:docker stop <container_id> + docker rm <container_id>
  • chroot:umount /mnt/chroot/dev + umount /mnt/chroot/proc + umount /mnt/chroot/sys

0