You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Ubuntu Linux中更新CMake且不影响ROS2 Galactic安装

Ubuntu下升级CMake到3.27.7且不影响ROS2 Galactic的可行方案

方法一:使用官方预编译.sh安装包(推荐)

你已下载的官方.sh包是最便捷的方式,无需编译,只需自定义路径安装并隔离环境:

  1. 确认系统默认CMake路径(ROS2依赖的版本):

    which cmake
    

    输出应为/usr/bin/cmake,这个版本绝对不能卸载。

  2. 给安装包添加执行权限:

    chmod +x cmake-3.27.7-linux-x86_64.sh
    
  3. 自定义路径安装(避免覆盖系统文件),例如安装到用户目录下的local文件夹:

    ./cmake-3.27.7-linux-x86_64.sh --prefix=~/local/cmake-3.27.7 --exclude-subdir
    

    参数说明:

    • --prefix:指定安装根目录,可根据需求修改
    • --exclude-subdir:避免在安装目录下创建额外的版本子目录,直接将文件放到指定路径中
  4. 配置环境变量,让系统优先调用新版本:

    • 临时生效(当前终端会话):
      export PATH=~/local/cmake-3.27.7/bin:$PATH
      
    • 永久生效(所有终端会话):
      编辑~/.bashrc或~/.zshrc(根据你使用的shell),添加以下内容:
      export PATH=~/local/cmake-3.27.7/bin:$PATH
      
      保存后执行生效:
      source ~/.bashrc
      
  5. 验证安装:

    cmake --version
    

    输出应显示cmake version 3.27.7,同时系统原有的/usr/bin/cmake仍可正常调用。

方法二:源码编译安装(解决bootstrap执行失败问题)

如果预编译包无法满足需求,可通过源码编译,使用系统原有CMake完成bootstrap:

  1. 安装编译依赖:

    sudo apt install build-essential libssl-dev
    
  2. 解压CMake源码包(若未下载,可从cmake官网获取对应版本源码压缩包):

    tar -xvf cmake-3.27.7.tar.gz && cd cmake-3.27.7
    
  3. 执行bootstrap(使用系统默认CMake,指定自定义安装路径):

    ./bootstrap --prefix=~/local/cmake-3.27.7
    

    注:之前bootstrap失败大概率是缺少编译依赖,或未指定--prefix导致尝试覆盖系统文件。

  4. 编译并安装:

    make -j$(nproc)
    make install
    

    -j$(nproc)表示使用所有CPU核心加速编译。

  5. 同样按照方法一的步骤配置环境变量,验证安装。

关键注意事项

  • 永远不要卸载系统默认的/usr/bin/cmake,否则ROS2 Galactic会被连带卸载。
  • 编译ROS2包时,若需使用系统原版本CMake,可临时取消环境变量:
    unset PATH
    source /opt/ros/galactic/setup.bash
    
    或直接指定CMake路径给colcon:
    colcon build --cmake-executable /usr/bin/cmake
    
  • 若仍出现CMAKE_ROOT错误,检查环境变量是否正确配置,确保~/local/cmake-3.27.7/bin在PATH最前面,且安装目录下存在share/cmake-3.27模块文件夹。

内容的提问来源于stack exchange,提问作者useeeeer132

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:52:40