我正在尝试在我的 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
。更新以下命令中的version
和build
变量以获取所需版本:
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.X这X表示我们定义为构建的版本的最后一部分。如果出现以下情况,构建可能会发生变化:构建已更新。根据官方网页最新版本是 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
安装说明:
删除旧版本的 cmake
sudo apt purge --auto-remove cmake
获取签名密钥的副本
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. 对于 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'
更新并安装
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