如何从命令行安装最新版本的 cmake?

如何从命令行安装最新版本的 cmake?

我正在尝试在我的 Linux 机器上安装最新版本cmake,但总是出现以下异常 -

userName@phx5qa01c-4e23:~/build$ wget http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz
--2013-10-08 14:39:55--  http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz
Resolving www.cmake.org... 66.194.253.19
Connecting to www.cmake.org|66.194.253.19|:80... failed: Connection timed out.
Retrying.

--2013-10-08 14:40:17--  (try: 2)  http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz
Connecting to www.cmake.org|66.194.253.19|:80... failed: Connection timed out.
Retrying.

--2013-10-08 14:40:40--  (try: 3)  http://www.cmake.org/files/v2.8/cmake-2.8.11.tar.gz
Connecting to www.cmake.org|66.194.253.19|:80...

它总是在重试...有什么想法吗?

有人知道我在这里做错了什么吗?或者有没有更好的方法在我的Linux机器上安装最新版本的cmake?

userName@phx5qa01c-4e23:~/build$ uname -a
Linux phx5qa01c-4e23 2.6.35-22-server #33-Ubuntu SMP Sun Sep 19 20:48:58 UTC 2010 x86_64 GNU/Linux

答案1

最常见的情况是当你想安装最新版本的构建,但您的操作系统存储库未更新。例如,在我的例子中,我有一台运行Ubuntu 16.04,当我执行命令时sudo apt install cmake安装的版本是3.5.1; 代替3.28.1这是当前版本cmake 官方文档

Teo,我怎样才能获得最新版本?

好吧,我们可以按照下列方法之一来安装它:

  • 使用 APT 存储库
  • 从源代码构建和安装
  • 使用二进制文件

A. 使用 APT 存储库(推荐普通用户)

Kitware 现在提供APT 存储库支持 Ubuntu 16.04、18.04 和 20.04。因此我们可以按照以下步骤轻松安装它:

A-1。使用以下命令卸载 Ubuntu 包管理器和配置提供的默认版本:

sudo apt remove --purge --auto-remove cmake

或者:

sudo apt purge --auto-remove cmake

A2。准备安装

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

A-5.注意事项如果运行sudo apt update出现以下错误:

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

A-6。最后我们可以更新并安装该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.28
build=1
## don't modify from here
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.28.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。更新以下命令中的versionbuild变量以获取所需版本:

version=3.28
build=1
## don't modify from here
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。测试你的新cmake版本B-4

笔记

3.28.XX表示我们定义为构建的版本的最后一部分。如果出现以下情况,构建可能会发生变化:构建已更新。根据官方网页最新版本是 3.28.1.如果你想上一版本 3.27.9只需替换版本并构建参数,如下所示:

version=3.27
build=9
## don't modify from here
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

观察

L对于 CMake 的早期版本(3.19.7 <=),请记住,文件名中包含大写字母,而从 3.20 版本开始,文件名中-Linux-x86_64.sh包含小写字母l-linux-x86_64.sh

答案2

Kitware 现在有一个 APT 存储库,目前支持 18.04、20.04 和 22.04。

所有 repos 均支持 AMD64、ARM32、ARM64 架构,并且 18.04 还支持 x86

安装说明:

  1. 删除旧版本的 cmake

     sudo apt purge --auto-remove cmake
    
  2. 获取签名密钥的副本

     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
    
  3. 将存储库添加到您的源列表

    a. 对于 Ubuntu Jammy Jellyfish (22.04)

     sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ jammy main'
    

    b. 对于 Ubuntu Focal Fossa (20.04)

     sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main'     
    

    c. 对于 Ubuntu Bionic Beaver (18.04)

     sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
    
  4. 更新并安装

     sudo apt update
     sudo apt install cmake
    

答案3

我喜欢以下方式,因为您可以轻松获得最新版本。

Kitware 似乎正式支持 pip wheels 版本。因此,您只需执行以下操作即可获取最新的 cmake:

pip 安装——升级 cmake

以下是关于此内容的博客: https://blog.kitware.com/cmake-python-wheels/

答案4

以防万一有人需要在 docker 镜像中安装最新的 CMAKE(就像我一样)。本例是 3.7.2,但你可以在这里查看https://cmake.org/download/正如已经指出的那样

#install latest cmake
ADD https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.sh /cmake-3.7.2-Linux-x86_64.sh
RUN mkdir /opt/cmake
RUN sh /cmake-3.7.2-Linux-x86_64.sh --prefix=/opt/cmake --skip-license
RUN ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
RUN cmake --version

相关内容