# apt-conflict-report **Repository Path**: Maoxy/apt-conflict-report ## Basic Information - **Project Name**: apt-conflict-report - **Description**: 用于在升级过程中出现依赖卸载问题时,排查依赖链,找到问题根因包 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-26 - **Last Updated**: 2026-10-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 指定源上源码包版本核对 在用户指定的 openKylin/Debian 风格源上,核对「源码包名=期望版本」是否等于该源(各组件合并后)按 Debian 版本序的最新版本,并输出带状态着色与时间戳后缀的 Excel。 ## 安装 ```bash pip install -r requirements.txt ``` ## 用法 ```bash printf 'lightdm=1.32.0-ok11\nlinux=7.0.0-3.0ok1\n' | \ python3 check_src_versions.py --distro openkylin --series huanghe --pocket RELEASE ``` 从文件读取,并按 amd64 二进制索引核对(按 Source 聚合): ```bash python3 check_src_versions.py \ --distro openkylin \ --series huanghe \ --pocket RELEASE \ --arch amd64 \ -f packages.txt \ -o out.xlsx ``` ### 常用参数 | 参数 | 说明 | 默认 | |------|------|------| | `--base-url` | 源基址 | `http://archive.build.openkylin.top` | | `--distro` | 发行版路径段 | 必填 | | `--series` | 系列 | 必填 | | `--pocket` | 空或 `RELEASE` → suite=`{series}`;其它 → `{series}-{pocket}` | 空 | | `--components` | 空格分隔组件 | `main cross pty` | | `--arch` | 指定架构时查 `binary-{arch}/Packages`,按 `Source` 聚合最新版本;省略则查 `Sources` | 省略 | | `-f` / `--file` | 包列表文件;省略读 stdin | — | | `-o` / `--output` | 输出基名(自动插入时间戳) | `check_src_versions_result.xlsx` | 输入每行格式:`源码包名=版本`;空行与 `#` 注释忽略。 带 `--arch` 时按源码包聚合版本:若存在该架构二进制则只用它们(忽略同源码的 `all` 包,避免未编过该架构却被文档包抬版本);若该源码包仅有 `Architecture: all`,则回退用 `all`。版本优先取 `Source: name (version)` 括号内,否则取二进制 `Version`,再取最新。 ### 退出码 - `0`:全部匹配 - `1`:存在版本不符或未找到 - `2`:用法/输入非法,或索引下载失败 ## 测试 ```bash python3 -m pytest tests/ -v --cov=check_src_versions --cov-report=term-missing ``` ## 文档 - 设计:`docs/superpowers/specs/2026-09-29-check-src-versions-design.md` - 实现计划:`docs/superpowers/plans/2026-09-29-check-src-versions.md`