测试项9 - 仓库中软件依赖检测脚本说明
脚本简介
本脚本用于测试指定产品的仓库中软件包的依赖异常,使用dnf repoclosure工具检测仓库软件包的依赖。 脚本执行的终端环境架构需要和测试仓库的架构一致,否则会有很多误报。所以按照架构(aarch64,x86_64,loongarch64,mips64el)有对应的测试脚本。
使用方法
-
在x86_64的服务器终端执行:
python3 test_pkg_repoclosure_x86_64.py -
在aarch64的服务器终端执行:
python3 test_pkg_repoclosure_aarch64.py -
在loongarch64的服务器终端执行:
python3 test_pkg_repoclosure_loongarch64.py -
在mips64el的服务器终端执行:
python3 test_pkg_repoclosure_mips64.py
输入文件
测试脚本中的变量command_pairs 变量中包含当前测试产品版本对应的命令内容。该变量的每项由三部分组成:
-
描述信息(如产品版本及架构)
-
检查已发布仓库中软件包依赖情况的 Shell 命令
-
检查本次更新仓库中软件包依赖情况的 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.mdpackage_comparison_x86_64.mdpackage_comparison_loongarch64.mdpackage_comparison_mips64el.md
每个文件中:
- 结果1:为已发布仓库中依赖报错软件包列表,
- 结果2:为测试仓库中依赖报错软件包列表
- 结果3:结果2中列表比结果1中列表多的软件包的包名,即测试仓库新增的报错包列表。结果为“无”,说明本周更新的包没有新增依赖报错,如果有包名,则需要确认是否为误报及查看有报错的原因。
脚本流程说明
- 执行dnf repoclosure 检查已发布的updates仓库是否有依赖报错,将结果输出到结果1;
- 执行dnf repoclosure 检查本周更新的updates仓库是否有依赖报错,将结果输出到结果2;
- 对比结果1和2,输出结果3 = 结果2依赖报错列表 - 结果2依赖报错列表;结果3是测试仓库新增的报错包列表;如不是‘无’,表示更新的包有依赖报错,需要排查是否为误报;
- 将步骤1-3的结果输出到md文档中。
注意事项
- 需要在对应架构的服务器上执行对应的脚本,不同架构上也可以执行,但会有很多误报。