最常见的情况是,当您想要安装最新版本的
cmake时,但您的操作系统仓库没有更新。例如,在我的情况下,我有一台运行
Ubuntu 16.04的笔记本电脑,当我执行命令
sudo apt install cmake
时,安装的版本是
3.5.1,而不是当前版本
3.25.1,当前版本可在
cmake.org上找到。
Teo,我怎样才能得到最新版本?
嗯,我们可以通过以下方法之一进行安装:
- 使用APT仓库
- 从源代码构建和安装
- 使用二进制文件
A. 使用APT仓库(推荐给普通用户)
Kitware现在提供了一个支持Ubuntu 16.04、18.04和20.04的APT仓库。因此,我们可以按照以下步骤轻松安装:
A-1.通过以下方法卸载由Ubuntu软件包管理器提供的默认版本和配置:
sudo apt remove --purge --auto-remove cmake
或者:
sudo apt purge --auto-remove cmake
A-2。准备安装
sudo apt update && \
sudo apt install -y software-properties-common lsb-release && \
sudo apt clean all
A-3. 获取kitware的签名密钥副本。
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
A-4. 将kitware的软件源添加到Ubuntu Focal Fossa(20.04)、Ubuntu Bionic Beaver(18.04)和Ubuntu Xenial Xerus(16.04)的源列表中。
sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main"
A-5. 作为一个可选步骤,建议我们还安装
kitware-archive-keyring
软件包,以确保Kitware的密钥环随着他们轮换密钥而保持最新。
sudo apt update
sudo apt install kitware-archive-keyring
sudo rm /etc/apt/trusted.gpg.d/kitware.gpg
如果运行
sudo apt update
出现以下错误:
A-5.Note
Err:7 https://apt.kitware.com/ubuntu bionic InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6AF7F09730B3F0A4
Fetched 11.0 kB in 1s (7552 B/s)
复制公钥
6AF7F09730B3F0A4
并运行以下命令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4
最后我们可以更新和安装
cmake
软件包。
sudo apt update
sudo apt install cmake
B. 建立和安装(推荐给开发者)
对于这种方法,您需要安装GCC工具:
sudo apt update
sudo apt install build-essential libtool autoconf unzip wget
B-1. 卸载Ubuntu软件包管理器提供的默认版本,如A-1中所示。
B-2. 访问官方CMake网页,然后下载并解压最新版本。更新以下命令中的version
和build
变量以获取所需版本:
version=3.25
build=1
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build.tar.gz
tar -xzvf cmake-$version.$build.tar.gz
cd cmake-$version.$build/
B-3. 运行以下命令安装提取的源代码:
./bootstrap
make -j$(nproc)
sudo make install
B-4.测试您的新cmake
版本。
$ cmake --version
cmake --version
的结果:
cmake version 3.25.X
CMake suite maintained and supported by Kitware (kitware.com/cmake).
C. 使用二进制文件(cmake-gui
可能无法正常工作)
C-1. 卸载 Ubuntu 包管理器提供的默认版本,如 A-1 中所述。
C-2. 访问 官方 CMake 网页,然后下载并安装.sh
版本的最新版到 opt/cmake
目录。更新以下命令中的 version
和 build
变量以获取所需的版本:
version=3.25
build=1
limit=3.20
result=$(echo "$version >= $limit" | bc -l)
os=$([ "$result" == 1 ] && echo "linux" || echo "Linux")
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build-$os-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-$version.$build-$os-x86_64.sh --prefix=/opt/cmake
C-3. 运行以下命令,将已安装的二进制链接添加到/usr/local/bin/cmake
中:
sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
C-4. 按照B-4中的方式测试您的新cmake
版本。
注意
在3.25.X中,X表示我们定义为构建的版本的最后一部分。如果更新了cmake,则构建可能会发生变化。根据官方网页,最新发布版本为3.25.1。如果您想要上一个版本3.24.3,只需替换版本和构建参数,如下所示:
version=3.24
build=3
limit=3.20
result=$(echo "$version >= $limit" | bc -l)
os=$([ "$result" == 1 ] && echo "linux" || echo "Linux")
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build-$os-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-$version.$build-$os-x86_64.sh --prefix=/opt/cmake
观察
对于之前的CMake版本(3.19.7及以下),请记住文件名中在-Linux-x86_64.sh
中有一个大写的L
,而从3.20版本开始,它变成了小写的l
在-linux-x86_64.sh
中。
wget
?试着用浏览器下载这个文件(http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz)。 - Eric Carvalhosudo apt-get install cmake
并不能安装最新版本。 - Teocci