麒麟os上cmake未安装或版本过低时,可通过yum/dnf、apt、源码编译、rpm强制安装四种方式解决,并需验证cmake功能及基础使用流程。

如果您在麒麟操作系统上尝试构建C++项目,但执行cmake命令提示“command not found”,则很可能是系统未预装CMake或版本过低无法满足项目要求。以下是针对麒麟OS(含V10、V4.x等主流版本)安装CMake的多种可行方法:
一、通过YUM/DNF包管理器安装
该方式适用于银河麒麟V10等基于RHEL/CentOS生态的版本,操作快捷且依赖自动解决,适合快速部署基础版本CMake。
1、刷新YUM元数据缓存,确保软件源信息最新:
sudo yum clean all && sudo yum makecache
2、查询可用CMake相关包名(不同麒麟版本命名存在差异):
yum list cmake* 或 dnf search cmake
3、根据查询结果选择安装主程序包(常见包名为cmake、cmake3或cmake-core):
sudo yum install -y cmake
4、验证安装结果:
cmake --version
which cmake
二、通过APT源安装(适用于麒麟V4.x等Debian系版本)
该方式适用于采用APT包管理机制的麒麟桌面版或特定服务器版本,依赖由APT统一处理,安装过程稳定可靠。
1、备份原始软件源列表:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2、编辑源列表文件,启用官方Kylin仓库(示例为KYLIN-ALL10.1-hwe):
sudo vi /etc/apt/sources.list
添加行:deb http://archive.kylinos.cn/kylin/KYLIN-ALL10.1-hwe main
3、更新软件包索引:
sudo apt-get update
4、安装CMake:
sudo apt-get install -y cmake
5、确认安装成功:
cmake --version
三、从源码编译安装(获取高版本CMake)
当项目明确要求CMake 3.20+等新特性时,系统仓库提供的版本往往不满足需求,此时需手动编译安装以获得指定版本。
1、下载对应架构(aarch64/x86_64)的CMake源码包(如cmake-3.25.1.tar.gz),推荐从cmake.org官网获取
2、解压源码包:
tar -zxvf cmake-3.25.1.tar.gz
3、进入解压目录并执行构建配置:
cd cmake-3.25.1
./bootstrap --prefix=/usr/local
4、编译源码(利用全部CPU核心加速):
make -j$(nproc)
5、安装至系统路径:
sudo make install
6、将新安装路径加入环境变量(写入/etc/profile全局生效):
echo 'export PATH="/usr/local/bin:$PATH"' | sudo tee -a /etc/profile
7、重新加载环境变量并验证:
source /etc/profile
cmake --version
四、使用RPM包强制安装(适用于离线或定制化场景)
在无网络或受限环境中,可提前下载RPM格式的CMake安装包,通过rpm命令完成部署,但需自行保障运行时依赖完整性。
1、从Kitware官网或麒麟软件商店获取适配当前系统的RPM包(如cmake-3.25.1-1.el8.aarch64.rpm)
2、检查RPM包依赖项(可选):
rpm -qpR cmake-3.25.1-1.el8.aarch64.rpm
3、强制安装(跳过依赖检查,仅在确认依赖已就位时使用):
sudo rpm -Uvh --force --nodeps cmake-3.25.1-1.el8.aarch64.rpm
4、验证二进制文件位置与版本:
which cmake
cmake --version
五、验证CMake功能与基础使用流程
安装完成后,需验证CMake能否正常解析CMakeLists.txt并生成构建系统,这是后续编译项目的基础前提。
1、创建测试项目目录:
mkdir ~/cmake-test && cd ~/cmake-test
2、编写最简CMakeLists.txt文件:
echo "cmake_minimum_required(VERSION 3.10)" > CMakeLists.txt
echo "project(HelloWorld)" >> CMakeLists.txt
echo "add_executable(hello main.cpp)" >> CMakeLists.txt
3、创建空的main.cpp占位文件:
touch main.cpp
4、执行CMake生成构建文件:
cmake .
5、检查是否生成Makefile文件:
ls Makefile
6、运行make进行编译(若成功,将生成hello可执行文件):
make










