Ubuntu 安装、升级最新cmake的几种方法

cmake是一个功能强大的跨平台构建工具,由于项目要求,我们经常需要使用更高版本的cmake,然而Ubuntu的默认主流apt源都不包含最新版本的cmake,下面本文介绍了几种安装高版本cmake的方法。

方法1 apt安装

依次执行如下代码:

$ sudo apt update
$ sudo apt upgrade cmake

这种安装方式受限于Ubuntu的默认apt源,往往是较旧的版本,并不推荐。许多教程建议先将cmake卸载,再重新安装新版本,这种做法是不可行的,在卸载cmake的过程中也会卸载许多依赖,导致过去的cmake项目无法使用。

方法2 PIP安装

cmake也作为一个python库提供,我们可以使用pip命令安装cmake,执行如下命令即可安装最新版本,PyPi显示截止当前camke的版本是3.30.0。

$ pip install cmake

但是由于apt环境和python环境都安装了cmake,如果PATH配置不当可能会导致无法直接调用python环境环境中的cmake,可以通过手动更新PATH的方式来保证使用的是python环境中安装的cmake。

# 查看系统中所有cmake的路径
$ whereis cmake

将python环境中对应位置的cmake路径添加到PATH的前面,打开 ~/.bashrc ,添加 export PATH=<cmake path in python>:$PATH

# .bashrc
# ......
export PATH=<cmake path in python>:$PATH

方法3 Conda安装

与方法2类似,在conda环境下执行如下命令:

$ conda install anaconda::cmake

同样需要将其添加到环境变量的开头以避免和系统中其他cmake发生冲突,具体做法同方法2,conda源中的cmake版本要稍微滞后于PyPi,截止目前最新版本是3.26.4。

方法4 源码编译安装

从源码编译安装cmake是不会出错的选择,我们可以非常自由地选择版本和安装位置,这个过程也很简单(如果中途不出错的话)。

需要实现安装c++编译器和make工具。

$ git clone https://github.com/Kitware/CMake.git
$ cd CMake
# 可以使用 --prefix=<install_prefix> 选项指定 CMake 的自定义安装目录
$ ./bootstrap && make && sudo make install

按照之前的方式添加环境变量即可。

方法5 第三方源安装

VS Code的文档中介绍了一种使用第三方源来下载最新版本cmake的方法,这也是比较推荐的一种方式。下面的内容来自Kitware APT 存储库 — Kitware APT Repository


#Kitware是第三方 APT 存储库,我们用它来托管我们自己的 Ubuntu 软件包,例如 CMake。
#目前,我们的存储库支持 Ubuntu 24.04、22.04 和 20.04。存储库支持 x86(仅限 64 位)和 ARM(32 位和 64 位)。
#要将存储库添加到您的安装中,请运行 kitware-archive.sh(https://apt.kitware.com/kitware-archive.sh) 脚本,或按顺序执行以下操作:

$ sudo apt-get update
$ sudo apt-get install ca-certificates gpg wget
#如果之前尚未安装 kitware-archive-keyring 软件包,请手动获取我们的签名密钥的副本:

$ test -f /usr/share/doc/kitware-archive-keyring/copyright ||
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
#将存储库添加到您的源列表并更新。

#对于 Ubuntu Noble Numbat (24.04):
$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ noble main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
sudo apt-get update

#对于 Ubuntu Jammy Jellyfish (22.04):
$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
$ sudo apt-get update


#对于 Ubuntu Fossa (20.04):

$ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/nul
$ sudo apt-get update

#如果之前没有安装 kitware-archive-keyring 包,请删除手动获取的签名密钥,为该包腾出空间:

$ test -f /usr/share/doc/kitware-archive-keyring/copyright ||
sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg

#安装 kitware-archive-keyring 软件包以确保您的密钥环在我们轮换密钥时保持最新状态:
$ sudo apt-get install kitware-archive-keyring

#现在您可以从我们的 APT 存储库安装任何软件包。例如,尝试安装 cmake 包:
$ sudo apt-get install cmake
暂无评论

发送评论 编辑评论


				
上一篇
下一篇