已合并
feat: 新增deb/rpm包custom_postinst.sh和custom_prerm.sh #1196
liu-wei创建于 7月29日
feat: 新增deb/rpm包custom_postinst.sh和custom_prerm.sh #1196
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 liu-wei 的贡献)atomgit-bot
7月29日 评论:
7月29日 评论:
变更摘要
本 PR 为 deb/rpm 包新增了两个生命周期脚本:custom_postinst.sh(安装后执行)和 custom_prerm.sh(卸载前执行),用于在包安装/卸载时自动处理 ops_cv 相关的 Python wheel 安装、__init__.py 文件管理以及跨架构 .so 文件的拷贝与清理工作。
主要改动
- 新增
custom_postinst.sh:通过run_pip函数将ops_cv/es_packages/whl/目录下的es_cvwheel 包安装至python/site-packages,安装后清除源码目录,并为ops_cv实现目录及其dynamic/子目录创建__init__.py文件;同时支持跨架构场景——当PKG_ARCH_NAME与实际uname -m不一致时,自动将libopgraph_cv.so和libophost_cv.so从包架构目录拷贝到实际架构目录。 - 新增
custom_prerm.sh:通过 pip 卸载es_cv,清理site-packages下的es_cv目录及相关.dist-info;删除先前创建的__init__.py文件;反向清理跨架构拷贝的 .so 文件及其所在空目录;最后递归清理ops_cv/es_packages/whl/及python/site-packages/的空目录层级。


不准确?
atomgit-bot
7月29日 评论:
7月29日 评论:
代码审查
审查总结
| 优先级 | 数量 | 文件 |
|---|---|---|
| P2 | 3 | custom_postinst.sh (2), custom_prerm.sh (1) |
| P3 | 1 | custom_postinst.sh (1) |
| P0/P1 | 0 | — |
已审查文件确认
scripts/package/ops_cv/rpm_deb/custom_postinst.sh:发现 3 个问题(P2×2, P3×1)scripts/package/ops_cv/rpm_deb/custom_prerm.sh:发现 1 个问题(P2×1)
整体风险评估
中等风险。 两个脚本的核心逻辑(whl 安装/卸载、__init__.py 管理、跨架构 so 拷贝/清理)基本正确。主要风险来自两方面:
INSTALL_PATH环境变量未做空值校验——若打包系统未正确传入该变量,两个脚本的路径操作会退化到以/为根的危险路径(如rm -rf /ops_cv)。建议在两个脚本开头添加空值检查。custom_postinst.sh中跨架构 so 拷贝后的chmod 755使用了通配符*,会意外修改目标目录下所有文件的权限而非仅复制的文件。
两个脚本均遵循了项目既有的 Shell 编码风格(不使用 set -e,错误通过 2>/dev/null 和 || true 静默处理),这在包管理器维护脚本场景下是可接受的。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 0 |
| 🟡 建议 | 1 |
💬 仅评论


不准确?
7月29日 添加了label:cann-cla/yes
liu-wei
7月29日 评论:
7月29日 评论:
compile


此处折叠了55条消息 查看更多
7月30日 添加了label:approved
7月30日 添加了label:lgtm
7月30日 关闭了关联的issue
7月30日 合入了pull request
描述
新增 deb/rpm 包的自定义安装后脚本和卸载前脚本,用于 ops-cv 包的生命周期管理。
custom_postinst.sh(安装后执行)
__init__.py文件custom_prerm.sh(卸载前执行)
__init__.py变更文件
scripts/package/ops_cv/rpm_deb/custom_postinst.shscripts/package/ops_cv/rpm_deb/custom_prerm.sh关联的Issue
#665
测试
文档更新
类型标签