Pull Request已成功合入, 合并人@CANN-robot
(感谢 yang-di52 的贡献)变更摘要
此 PR 主要目的是在 install_deps.sh 依赖安装脚本中新增 googletest 的自动安装功能,同时引入了 pkg-config 依赖检测与安装。此外,移除了对 EulerOS(openEuler/EulerOS)发行版的支持,简化了 Debian 下 GCC 的安装逻辑,删除了 check_dependencies_silent 函数,并对部分字符串和 macOS 上的 Python 版本进行了调整。
主要改动
- 新增
install_googletest函数:支持在 Debian(通过libgtest-dev+ 源码编译)、RHEL(通过gtest gtest-devel包)和 macOS(通过brew install googletest)上安装 googletest 1.11.0,并使用pkg-config校验版本是否满足最低要求。 - 新增
install_pkg_config函数:为 googletest 版本检测提供前置依赖,在 Debian/RHEL/macOS 上分别通过系统包管理器安装pkg-config,安装失败则退出脚本。 - 移除 EulerOS 支持:从
detect_os、install_python、install_gcc、install_cmake、install_pigz、install_dos2unix等函数中删除了euler分支,不再识别 openEuler/EulerOS 发行版,并将不支持的 Linux 发行版提示改为中文。 - 简化 Debian GCC 安装逻辑:删除
debian_gcc_pkg_available、debian_gcc_max_alternative_priority、debian_set_gcc_alternative、install_gcc_debian四个函数,改为在install_gcc内直接遍历候选版本安装,并统一使用update-alternatives设置优先级 90。 - 移除
check_dependencies_silent函数:该函数原本用于静默检查依赖是否缺失并给出提示,现被完全删除。同时main函数不再有条件判断,直接执行main "$@"。


代码审查
审查总结
审查文件: install_deps.sh(共计 +120 / -186 行)
发现问题统计:
| 优先级 | 数量 | 说明 |
|---|---|---|
| P0 | 2 | 阻断构建的关键问题 |
| P1 | 1 | 功能性回归 |
| P2 | 2 | 边界条件下的缺陷 |
| P3 | 2 | 轻微问题 |
| 合计 | 7 |
P0 问题(必须修复才能合并):
check_dependencies_silent函数被删除,但build.sh仍通过source引入并调用该函数,导致所有构建流程中断。BASH_SOURCE守卫被移除,导致source install_deps.sh时意外执行main,在构建过程中触发不必要的依赖安装、sudo 操作和交互式提示。
P1 问题(高优先级回归):
3. openEuler / EulerOS 操作系统支持被完全移除,该类系统用户将无法使用此脚本。
P2 问题:
4. Debian GCC 安装逻辑缺少 update-alternatives --set,可能导致新安装的 GCC 未被激活。
5. install_googletest macOS 分支的 PKG_CONFIG_PATH 仅 echo 到 stdout,未写入 ~/.zshrc,环境变量无法持久化。
P3 问题:
6. 中文错误信息存在错别字("发型"→"发行")。
7. install_cmake 中移除 run_command 导致 wget/gpg 管道失败时错误信息不够清晰。
整体风险评估: 此变更存在两个 P0 阻断性问题,合并后将直接导致 build.sh 构建流程失败。建议在修复 P0 问题并恢复 EulerOS 支持之前不要合并。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 3 |
| 🟡 建议 | 1 |
⛔ 需要修改


Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


描述
主要修改
为install_deps.sh 增加了安装gtest的功能
删除requirements中多余的两个依赖
关联的Issue
#4256
#4154
测试
文档更新
类型标签
AI/Agent生成声明