68 lines
3.1 KiB
Markdown
68 lines
3.1 KiB
Markdown
# 测试项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 项如下:
|
||
```python
|
||
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文档中。
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
- 需要在对应架构的服务器上执行对应的脚本,不同架构上也可以执行,但会有很多误报。
|
||
---
|