已合并
调整nn仓第三方依赖 #7845
yang-di52创建于 7月23日
调整nn仓第三方依赖 #7845
已合并
yang-di52创建于 7月23日
yang-di52成员
7月23日

描述

  1. 文档声称 install_deps.sh 可一键安装所有列出的基础依赖("上述依赖可通过项目脚本一键安装"),但实际脚本仅安装了 GCC、CMake、pigz、dos2unix、patch,未安装 googletest(文档明确列为基础依赖项之一),开发者需手动下载源码、编译并安装 googletest,与文档"一键安装"的描述不符
  2. python requirements多两个不需要的依赖

主要修改

为install_deps.sh 增加了安装gtest的功能
删除requirements中多余的两个依赖

关联的Issue

#4256
#4154

测试

image.png

文档更新

类型标签

AI/Agent生成声明

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 yang-di52 的贡献)
Yyang-di52成员
7月23日 创建了 pull request,commit 36dad712
Yyang-di52成员
7月23日 关联了issue:[Requirement|需求建议]: fusedmatmul支持ascendquant融合
atomgit-bot
atomgit-bot
7月23日 评论:

变更摘要

此 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_osinstall_pythoninstall_gccinstall_cmakeinstall_pigzinstall_dos2unix 等函数中删除了 euler 分支,不再识别 openEuler/EulerOS 发行版,并将不支持的 Linux 发行版提示改为中文。
  • 简化 Debian GCC 安装逻辑:删除 debian_gcc_pkg_availabledebian_gcc_max_alternative_prioritydebian_set_gcc_alternativeinstall_gcc_debian 四个函数,改为在 install_gcc 内直接遍历候选版本安装,并统一使用 update-alternatives 设置优先级 90。
  • 移除 check_dependencies_silent 函数:该函数原本用于静默检查依赖是否缺失并给出提示,现被完全删除。同时 main 函数不再有条件判断,直接执行 main "$@"
likedislike
atomgit-bot
atomgit-bot
7月23日 评论:

代码审查


审查总结

审查文件: install_deps.sh(共计 +120 / -186 行)

发现问题统计:

优先级 数量 说明
P0 2 阻断构建的关键问题
P1 1 功能性回归
P2 2 边界条件下的缺陷
P3 2 轻微问题
合计 7

P0 问题(必须修复才能合并):

  1. check_dependencies_silent 函数被删除,但 build.sh 仍通过 source 引入并调用该函数,导致所有构建流程中断。
  2. 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

⛔ 需要修改

likedislike
CANN-robotCANN-robot成员
7月23日 添加了label:cann-cla/yes
此处折叠了71条消息 查看更多
chenqi317成员
7月25日 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
7月25日 添加了label:lgtm
CANN-robotCANN-robot成员
7月25日 关闭了关联的issue
CANN-robotCANN-robot成员
7月25日 合入了pull request
CANN-robot
CANN-robot成员
7月25日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike