直接换镜像源是最快解法,清华、中科大、华为云三站已稳定同步CMake官方包,下载速度从几KB/s提升至10+MB/s;需手动替换下载链接,因CMake无内置镜像配置开关,cmake --install等命令仍走官网硬编码地址,无效。

直接换镜像源,别折腾代理或网盘分享——清华、中科大、华为云三个镜像站已稳定同步 CMake 官方发布包,下载速度从几 KB/s 提升到 10+ MB/s 是常态。
Windows 下用 PowerShell 或 CMD 下载慢,怎么换源?
官网 cmake.org/files/ 在国内直连基本不可用,但 CMake 自身不提供配置镜像的开关,所以不能改 CMAKE_SOURCE_DIR 或设环境变量来“切换源”。真正有效的做法是手动替换下载地址:
- 打开清华镜像页:
https://mirrors.tuna.tsinghua.edu.cn/cmake/,找到对应版本的.msi或.zip文件(比如cmake-3.29.2-windows-x86_64.msi) - 右键复制链接,用浏览器或
curl -L -O <url>下载 - 注意:不要用
cmake --install命令自动拉取,它硬编码走官方域名,换源无效
Linux/macOS 用脚本安装卡在 curl github.com,怎么办?
很多教程教的 curl -sSL https://cmake.org/install/ | sh 已停更且依赖 GitHub API,而 api.github.com 在国内常被重置。正确做法是绕过脚本,直下二进制包:
- 去清华镜像的 GitHub Release 镜像页:
https://mirrors.tuna.tsinghua.edu.cn/github-release/Kitware/CMake/ - 找对应平台的
.sh包(如cmake-3.29.2-linux-x86_64.sh) - 执行:
chmod +x cmake-*.sh && ./cmake-*.sh --prefix=$HOME/cmake --skip-license - 加进
PATH:echo 'export PATH=$HOME/cmake/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
CI/CD 流水线里反复下载失败,怎么稳定?
自动化流程最怕非幂等下载。关键不是“快”,而是“确定性”:
- 禁止在 pipeline 中动态拉取最新版,固定用带 hash 的 URL(例如清华镜像页提供的 SHA256 校验值)
- 把
cmake-*.sh或.msi提前缓存到内网对象存储,CI 步骤改为wget http://intranet/cmake/cmake-3.29.2-linux-x86_64.sh - 若必须用
FetchContent_Declare()拉 CMake 自身(极少见),需提前 patch CMakeLists.txt,把URL参数指向内网镜像路径,而不是默认的cmake.org
最容易被忽略的是:CMake 版本本身是否真被用了。装完运行 cmake --version,再查 which cmake 和 ls -l $(which cmake),确认没被系统旧版(如 Ubuntu 自带的 3.22)覆盖。镜像下载再快,调用的还是错版本,一样报 CMake Error: The source directory does not appear to contain CMakeLists.txt。


















