Ubuntu/Linux 升级 CMake 版本
Posted iBlackAngel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu/Linux 升级 CMake 版本相关的知识,希望对你有一定的参考价值。
Ubuntu/Linux 升级 CMake 版本
背景
在 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 进行操作:
-
如果您使用的是最小 Ubuntu 镜像或 Docker 镜像,则可能需要安装以下软件包:
sudo apt-get update sudo apt-get install -y gpg wget
-
获取 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
-
将存储库添加到源列表并更新。
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
-
安装
kitware-archive-keyring
软件包,以确保您的钥匙环在我们轮循钥匙时保持最新:sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg sudo apt-get install kitware-archive-keyring
-
作为可选步骤,如果您想订阅除生产版本之外的候选版本,可以将我们的候选版本存储库添加到您的源中。
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
请注意,如果您添加了候选版本存储库,您仍然需要添加主存储库,因为候选版本存储存储库本身不提供生产版本。
-
现在,您可以从我们的 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
linux 下CMake如何升级?(安装指定版本cmake)
先把当前版本全卸载
# sudo apt remove cmake
# sudo apt purge --auto-remove cmake
然后到cmake官网下载指定.sh版本
我i下这个
下完后复制到虚拟机里
终端运行
sudo ./cmake-3.8.0-Linux-x86_64.sh --skip-license --exclude-subdir --prefix=/usr/local
如果提示没权限就赋予777权限
详细指令:
root@ubuntu:/home/yg/share# ./cmake-3.8.0-Linux-x86_64.sh --skip-license --exclude-subdir --prefix=/usr/local
bash: ./cmake-3.8.0-Linux-x86_64.sh: 权限不够
root@ubuntu:/home/yg/share#
root@ubuntu:/home/yg/share#
root@ubuntu:/home/yg/share# chmod 777 cmake-3.8.0-Linux-x86_64.sh
root@ubuntu:/home/yg/share#
root@ubuntu:/home/yg/share#
root@ubuntu:/home/yg/share#
root@ubuntu:/home/yg/share# ./cmake-3.8.0-Linux-x86_64.sh --skip-license --exclude-subdir --prefix=/usr/local
CMake Installer Version: 3.8.0, Copyright (c) Kitware
This is a self-extracting archive.
The archive will be extracted to: /usr/local
Using target directory: /usr/local
Extracting, please wait...
Unpacking finished successfully
root@ubuntu:/home/yg/share#
root@ubuntu:/home/yg/share#
root@ubuntu:/home/yg/share#
测试版本:
root@ubuntu:/home/yg/share# cmake --version
cmake version 3.8.0
CMake suite maintained and supported by Kitware (kitware.com/cmake).
以上是关于Ubuntu/Linux 升级 CMake 版本的主要内容,如果未能解决你的问题,请参考以下文章