Files
2025-07-23 20:41:13 +08:00

3.1 KiB
Raw Permalink Blame History

测试项9 - 仓库中软件依赖检测脚本说明

脚本简介

本脚本用于测试指定产品的仓库中软件包的依赖异常使用dnf repoclosure工具检测仓库软件包的依赖。 脚本执行的终端环境架构需要和测试仓库的架构一致否则会有很多误报。所以按照架构aarch64,x86_64,loongarch64,mips64el有对应的测试脚本。

使用方法

  1. 在x86_64的服务器终端执行 python3 test_pkg_repoclosure_x86_64.py

  2. 在aarch64的服务器终端执行 python3 test_pkg_repoclosure_aarch64.py

  3. 在loongarch64的服务器终端执行 python3 test_pkg_repoclosure_loongarch64.py

  4. 在mips64el的服务器终端执行 python3 test_pkg_repoclosure_mips64.py


输入文件

测试脚本中的变量command_pairs 变量中包含当前测试产品版本对应的命令内容。该变量的每项由三部分组成:

  1. 描述信息(如产品版本及架构)

  2. 检查已发布仓库中软件包依赖情况的 Shell 命令

  3. 检查本次更新仓库中软件包依赖情况的 Shell 命令

以 V10SP1.1 x86_64 为例,其 command_pairs 项如下:

command_pairs = [
    (
        "V10SP1.1 x86_64 对比",
        'yum clean all;dnf repoclosure --disablerepo="*" --repofrompath base,https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/base/x86_64/ --repofrompath updates,https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/ --check updates --all -n|grep \'package:\'',
        'yum clean all;dnf repoclosure --disablerepo="*" --repofrompath=base,https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/base/x86_64/ --repofrompath=updates,https://update.cs2c.com.cn/private_test/repo/V10/V10SP1.1/os/adv/lic/updates/x86_64/ --check updates --all -n|grep \'package:\''
    )
]

输出文件

执行脚本执行时,会输出对应架构的执行结果,输出文件分别为:

  • package_comparison_aarch64.md
  • package_comparison_x86_64.md
  • package_comparison_loongarch64.md
  • package_comparison_mips64el.md

每个文件中:

  • 结果1为已发布仓库中依赖报错软件包列表
  • 结果2为测试仓库中依赖报错软件包列表
  • 结果3结果2中列表比结果1中列表多的软件包的包名即测试仓库新增的报错包列表。结果为“无”说明本周更新的包没有新增依赖报错如果有包名则需要确认是否为误报及查看有报错的原因。

脚本流程说明

  1. 执行dnf repoclosure 检查已发布的updates仓库是否有依赖报错将结果输出到结果1;
  2. 执行dnf repoclosure 检查本周更新的updates仓库是否有依赖报错将结果输出到结果2;
  3. 对比结果1和2输出结果3 = 结果2依赖报错列表 - 结果2依赖报错列表结果3是测试仓库新增的报错包列表如不是表示更新的包有依赖报错需要排查是否为误报
  4. 将步骤1-3的结果输出到md文档中。

注意事项

  • 需要在对应架构的服务器上执行对应的脚本,不同架构上也可以执行,但会有很多误报。