Ubuntu/Linux 升级 CMake 版本

Ubuntu/Linux 升级 CMake 版本

背景

logo

在 Ubuntu 18.04 系统上默认的 CMake 版本为 3.10.2,当需要进行一些比较新的项目的编译时,比如说 iceoryx 的交叉编译,会遇到 CMake 版本不支持问题。类似下面的打印:

CMake Error at CMakeLists.txt:17 (cmake_minimum_required):
  CMake 3.16 or higher is required.  You are running version 3.10.2

这时我们需要升级系统中的 CMake,从 3.10.2 升级到 3.16+ 版本。

解决方案

CMake 网站的 Download 页面 Alternative Binary Releases 列表中提供了 Kitware’s Ubuntu packages 可替换的 APT 仓库 https://apt.kitware.com/。在 https://apt.kitware.com/ 网址中是 Kitware 维护的 CMake 可替换版本,根据网站提示选择合适的系统进行更新。

以下步骤可参考 apt.kitware.com 进行操作:

  1. 如果您使用的是最小 Ubuntu 镜像或 Docker 镜像,则可能需要安装以下软件包:

    sudo apt-get update
    sudo apt-get install -y gpg wget
    
  2. 获取 Kitware 的签名密钥副本:

    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
    
  3. 将存储库添加到源列表并更新。

    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 Focal 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/null
    sudo apt-get update
    

    Ubuntu Bionic Beaver (18.04):

    echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
    sudo apt-get update
    
  4. 安装 kitware-archive-keyring 软件包,以确保您的钥匙环在我们轮循钥匙时保持最新:

    sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg
    sudo apt-get install kitware-archive-keyring
    
  5. 作为可选步骤,如果您想订阅除生产版本之外的候选版本,可以将我们的候选版本存储库添加到您的源中。

    Ubuntu Jammy Jellyfish (22.04):

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

    Ubuntu Focal Fossa (20.04):

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

    Ubuntu Bionic Beaver (18.04):

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

    请注意,如果您添加了候选版本存储库,您仍然需要添加主存储库,因为候选版本存储存储库本身不提供生产版本。

  6. 现在,您可以从我们的 APT 存储库安装任何软件包。例如,尝试安装 cmake 包:

    sudo apt install -y cmake
    

提示:使用 Synaptic 工具查看待更新的 cmake 版本,关于 Synaptic 的使用可参考「Ubuntu 软件包管理利器 - 新立得 (Synaptic)」。

版本验证

安装 CMake 包之后,可以通过 cmake --version 命令查看版本信息。

$ cmake --version
cmake version 3.25.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

欢迎关注我的公众号:飞翔的小黄鸭
也许会发现不一样的风景


△ \triangle 交叉编译 iceoryx

<think>好的,我现在要解决用户的问题:如何在Ubuntu 20.04上将CMake升级到最新版本。首先,我需要确认用户当前的CMake版本可能比较旧,而Ubuntu 20.04的默认仓库中的版本可能不是最新的。用户可能需要最新版本以支持某些新特性或项目需求。 接下来,我需要考虑几种常见的升级方法。通常,在Ubuntu上安装软件包可以通过官方仓库、第三方PPA或者手动编译安装。对于CMake来说,官方仓库可能版本较低,所以可能需要使用其他方法。 首先,检查现有版本。用户可以通过运行`cmake --version`来查看当前安装的版本。这一步很重要,因为如果用户已经通过其他方式安装了较新的版本,可能需要不同的处理。 接下来,考虑使用PPA。我记得Kitware提供了官方的APT仓库,其中包含最新版本CMake。添加PPA通常是一个方便的方法,可以自动处理依赖关系和更新。步骤应该包括添加仓库的GPG密钥、添加仓库到sources.list,然后更新并安装。需要确保用户有安装软件包的必要权限,使用sudo命令。 另外,手动安装也是一种选择,尤其是当用户需要特定版本或PPA不可用时。手动安装通常涉及下载预编译的二进制文件,解压并放置到系统目录中,比如/usr/local,这样可以在全局使用。不过,手动安装需要确保二进制文件的兼容性,并且不会由包管理器管理,更新时需要手动操作。 还有一种可能性是使用snap安装,但用户可能更倾向于使用APT或手动安装,因为snap可能会有环境隔离的问题,或者启动较慢。 需要提醒用户注意,使用第三方PPA可能存在一定的风险,比如仓库的维护和兼容性问题,所以建议选择官方提供的PPA。此外,手动安装时,要确保下载来源可信,避免安全风险。 在步骤中,添加PPA可能需要先安装依赖项,比如`apt-transport-https`、`ca-certificates`、`gnupg`等,这些在较新的Ubuntu系统中可能已经安装,但最好在指导中包括,以确保步骤的完整性。 最后,验证安装是否成功,运行`cmake --version`确认版本号是否正确升级。如果用户遇到问题,可能需要检查路径是否设置正确,或者是否有多个版本CMake冲突,这时候需要调整PATH环境变量,确保新安装的版本优先。 总结可能的步骤: 1. 检查当前版本2. 卸载旧版本(如果需要)。 3. 添加Kitware的PPA,更新并安装。 4. 或者手动下载并安装。 5. 验证新版本。 同时,需要考虑用户是否有足够的权限执行sudo命令,以及网络连接是否正常,能够访问PPA和下载站点。可能还需要处理安装后的依赖关系,但CMake通常独立,依赖较少。 现在需要将这些步骤整理成清晰的中文回答,按照用户要求的格式,分步骤说明,确保命令正确,语法正确,引用相关参考资料中的命令格式,比如使用sudo apt update等。同时生成相关问题,如如何验证版本,如何卸载,替代方法等。</think>### 如何在 Ubuntu 20.04 上将 CMake 升级到最新版本 Ubuntu 20.04 默认仓库中的 CMake 版本可能较旧(通常为 3.16.x),若需升级到最新版本,可通过以下两种方法实现: --- #### **方法一:通过官方 Kitware APT 仓库安装(推荐)** 1. **添加仓库和密钥** 依次执行以下命令以添加 Kitware 的官方仓库: ```bash sudo apt update sudo apt install -y apt-transport-https ca-certificates gnupg software-properties-common wget wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc | sudo gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg 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 sudo apt update ``` > 注:`focal` 对应 Ubuntu 20.04 的代号[^1]。 2. **安装最新 CMake** ```bash sudo apt install -y cmake ``` 3. **验证版本** ```bash cmake --version ``` --- #### **方法二:手动安装预编译二进制** 1. **卸载旧版本(可选)** ```bash sudo apt remove --purge cmake ``` 2. **下载最新版本** 访问 [CMake 官网下载页](https://cmake.org/download/),选择 Linux x86_64 的预编译包(例如 `cmake-3.28.0-linux-x86_64.sh`),使用 `wget` 下载: ```bash wget https://github.com/Kitware/CMake/releases/download/v3.28.0/cmake-3.28.0-linux-x86_64.sh ``` 3. **安装并配置路径** ```bash sudo sh cmake-3.28.0-linux-x86_64.sh --prefix=/usr/local --exclude-subdir hash -r # 刷新 Shell 缓存 ``` 4. **验证版本** ```bash cmake --version ``` --- ### **注意事项** - **依赖问题**:确保系统已安装 `build-essential` 等基础编译工具[^2]。 - **版本冲突**:若同时存在多个版本,可通过 `which cmake` 检查路径优先级。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iBlackAngel

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值