UBUNTU环境下Cmake版本 更改 升级

本文介绍如何在Ubuntu环境中升级CMake版本。通过下载指定版本的CMake压缩包并解压,创建软链接到/usr/bin/目录下,从而覆盖系统默认版本,实现版本更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UBUNTU环境下Cmake版本 更改 升级

通过apt安装的版本较低

sudo apt-get install cmake

官方给出的: https://cmake.org/download/

The release was packaged with CPack which is included as part of the release. The .sh files are self extracting gziped tar files. To install a .sh file, run it with /bin/sh and follow the directions. The OS-machine.tar.gz files are gziped tar files of the install tree. The OS-machine.tar.Z files are compressed tar files of the install tree. The tar file distributions can be untared in any directory. They are prefixed by the version of CMake. For example, the Linux-x86_64 tar file is all under the directory cmake–Linux-x86_64. This prefix can be removed as long as the share, bin, man and doc directories are moved relative to each other. To build the source distributions, unpack them with zip or tar and follow the instructions in Readme.txt at the top of the source tree.

翻译过来:

该发行版与CPack打包在一起,而CPack包含在发行版中。.sh文件是自解压缩gzip压缩的tar文件。要安装.sh文件,请使用/ bin / sh运行该文件并按照说明进行操作。OS-machine.tar.gz文件是安装树的gzip压缩tar文件。OS-machine.tar.Z文件是安装树的压缩tar文件。tar文件发行版可以在任何目录中解压。它们以CMake版本作为前缀。例如,Linux-x86_64 tar文件都在cmake–Linux-x86_64目录下。**只要share,bin,man和doc目录相对于彼此移动,就可以删除此前缀。**要构建源发行版,请使用zip或tar解压缩它们,并按照源树顶部的Readme.txt中的说明进行操作。

因此只需要将其软链接到/usr/bin/中覆盖系统原始的cmake即可实现版本替换。

wget -P /opt/ https://cmake.org/files/v3.14/cmake-3.14.0-Linux-x86_64.tar.gz
tar zxvf /opt/cmake-3.14.0-Linux-x86_64.tar.gz -C /opt
cd /opt/cmake-3.14.0-Linux-x86_64
ln -sf /opt/cmake-3.14.0-Linux-x86_64/bin/* /usr/bin/

cmake --version

echo "done"

详细请参照参考资料

参考资料:
https://blog.youkuaiyun.com/whutshiliu/article/details/106480024
http://www.cmake.org/files

<think>我们参考之前的方法,但注意用户现在是Ubuntu20.04,且需要升级CMake3.8(这是一个比较旧的版本,但用户可能有特定需求)。通常,Ubuntu20.04默认的CMake版本可能已经高于3.8,所以首先检查当前版本。如果已经满足则无需升级。如果确实需要3.8,我们可以通过源码编译安装或者使用预编译包。根据引用[2][3]提供的方法,我们可以通过下载源码编译安装。引用[2]是升级到3.15,引用[3]是升级到3.11.3,但方法类似。另外,引用[4]和引用[5]提供了通过添加路径或创建软链接的方式,我们也可以考虑使用预编译的二进制文件(如果有的话)来避免编译。步骤:1.首先检查当前版本,如果已经满足则不需要操作。2.如果用户确实需要安装3.8版本,我们可以从CMake官网下载指定版本的源码或预编译二进制包(如果有)。3.由于3.8版本相对较旧,可能没有提供预编译的二进制包(特别是对于Ubuntu20.04),所以源码编译是可行的方法。但注意:Ubuntu20.04的默认仓库中可能有更新的CMake,但我们可以通过添加第三方仓库或者手动安装特定版本。然而,我们注意到用户要求的是3.8版本,这是一个比较低的版本。我们可以尝试查找是否有适用于20.04的预编译包,或者从源码编译。参考引用[3]中的方法,我们可以按照以下步骤(这里以3.8.2版本为例,因为3.8是一个大版本,需要指定小版本,例如3.8.2):注意:由于官网下载地址可能有版本号的变化,所以需要替换具体版本号。方法一:使用预编译的二进制包(推荐,如果有的话)在CMake官网上,我们可以找到历史版本的预编译包:https://cmake.org/files/3.8版本在v3.8目录下,例如:https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.tar.gz步骤:1.下载预编译包2.解压到指定目录(比如/opt/cmake-3.8.2)3.添加环境变量或者创建软链接到/usr/bin方法二:源码编译如果没有预编译包,或者预编译包不兼容(比如系统库版本问题),则使用源码编译。具体步骤:方法一:使用预编译包```#下载wgethttps://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.tar.gz#解压tar-xzvfcmake-3.8.2-Linux-x86_64.tar.gz#将解压后的文件夹移动到/opt,也可以选择其他目录sudomvcmake-3.8.2-Linux-x86_64/opt/cmake-3.8.2#设置环境变量(临时生效)#exportPATH=/opt/cmake-3.8.2/bin:$PATH#或者设置永久环境变量:编辑~/.bashrc或/etc/profile,并添加echo'exportPATH=/opt/cmake-3.8.2/bin:$PATH'>>~/.bashrcsource~/.bashrc#如果不想修改PATH,也可以创建软链接到/usr/bin(需要删除或备份旧版本cmake链接,但注意系统可能有依赖,所以建议用修改PATH的方法,或者只覆盖cmake)#例如,备份旧版本(可选):sudomv/usr/bin/cmake/usr/bin/cmake-old#然后创建软链接sudoln-sf/opt/cmake-3.8.2/bin/cmake/usr/bin/cmake#注意:如果使用软链接,可能同时需要将ccmakecmake-gui等链接过去(如果有需要的话)```方法二:源码编译安装```#安装编译依赖sudoaptupdatesudoaptinstallbuild-essentiallibssl-dev#下载源码(这里以3.8.2为例,具体版本请查看官方下载页面)wgethttps://cmake.org/files/v3.8/cmake-3.8.2.tar.gz#解压tar-xzvfcmake-3.8.2.tar.gzcdcmake-3.8.2#配置./bootstrap#编译(这个过程可能会比较长)make-j$(nproc)#安装sudomakeinstall#安装后默认在/usr/local/bin,因此PATH中应该包含该目录。如果没有,可以手动添加或重启终端。#检查版本cmake--version```注意:使用源码安装时,如果系统原本有其他版本cmake(通过apt安装),那么新版本将会安装在/usr/local/bin,而通常该目录在PATH中的优先级高于/usr/bin(apt安装的软件通常在/usr/bin),因此会优先使用新版本。另外,如果用户需要卸载旧版本(例如apt安装的cmake),可以使用:sudoaptremovecmake但请注意,系统可能有一些依赖cmake的包,所以卸载可能会带来问题。如果不卸载,只需确保PATH中我们的新版本路径在旧版本路径之前,或者将旧版本重命名/软链接到新版本。由于用户要求的是3.8版本,这个版本相对较低,可能已经不被官方推荐,但方法通用。但是,请注意:Ubuntu20.04默认的cmake版本可能是3.16以上(可以通过`cmake--version`查看),所以用户可能需要先查看当前版本。如果当前版本已经高于3.8,且用户需要降级,那么我们需要卸载高版本或者使用上述方法覆盖。综上所述,我们给出两种方法,并推荐使用预编译包(如果系统架构匹配)以节省时间。最后,建议用户在操作前备份重要数据,并谨慎操作。由于用户的问题具体明确,我们将按照上述步骤回答。</think> 在 Ubuntu 20.04 上将 CMake 升级到 3.8 版本,建议采用源码编译或预编译包安装的方法,具体步骤如下: --- ### 方法一:源码编译安装(推荐) ```bash # 安装编译依赖 sudo apt update sudo apt install build-essential libssl-dev # 下载 CMake 3.8.2 源码 wget https://cmake.org/files/v3.8/cmake-3.8.2.tar.gz # 解压并进入目录 tar -xzvf cmake-3.8.2.tar.gz cd cmake-3.8.2 # 编译安装(约10-20分钟) ./bootstrap make -j$(nproc) sudo make install # 验证版本 cmake --version # 应显示 3.8.2 ``` --- ### 方法二:预编译包安装(快速) ```bash # 下载预编译包 (x86_64架构) wget https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.tar.gz # 解压到 /opt 目录 sudo tar -xzvf cmake-3.8.2-Linux-x86_64.tar.gz -C /opt # 创建软链接 sudo ln -sf /opt/cmake-3.8.2-Linux-x86_64/bin/* /usr/bin/ # 验证版本 cmake --version # 应显示 3.8.2 ``` --- ### 注意要点 1. **保留旧版本** 以上方法均不会卸载系统原版 CMakeUbuntu 20.04 默认约为 3.16.x),可通过路径 `/usr/bin/cmake` 和 `/usr/local/bin/cmake` 区分使用 (新版本默认安装到 `/usr/local/bin` 优先级更高)[^1] 2. **版本验证** 若版本未更新,检查 PATH 变量优先级: ```bash echo $PATH | grep /usr/local/bin # 确保在 /usr/bin 前 ``` 3. **依赖冲突** 如遇编译错误,确认已安装所有依赖: ```bash sudo apt install libncurses5-dev ``` --- ### 兼容性说明 由于 CMake 3.8 较旧(2017年发布),在 Ubuntu 20.04 上编译时: - 可能需额外安装 `libssl1.0-dev`(非默认的 libssl-dev) - 高版本 GCC(>7.5)可能导致告警但不影响基础功能[^3] > 建议仅在项目明确要求时使用此旧版本,否则推荐使用 Ubuntu 官方仓库的较新 CMake(`sudo apt install cmake` 默认提供 3.16+) --- 相关问题: 1. 如何在 CMake版本环境下编译要求新版本的项目? 2. 升级 CMake 后如何恢复系统默认版本? 3. CMake版本的核心变更有哪些兼容性问题? 4. 能否通过 PPA 仓库安装特定 CMake 版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值