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

我正在尝试在我的linux盒子中安装最新的cmake ,我总是得到以下exception –

 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 

可能www.cmake.org上的服务器非常繁忙。 您可以重试或使用Web浏览器下载文件。

然而,有一个更简单的方法:

 sudo apt-get install cmake 

更新:评论者指出“Ubuntu 12.04仅发售v2.8.7”“14.04仍然发货2.8” 。 这是有原因的:12.04和14.04是UTSntu的LTS版本 。 LTS版本旨在保持稳定5年,因此它们只接收安全性和关键更新,而不是最新版本的软件包。 正常版本每6个月发布一次,因此更有可能最近推出cmake。

最常见的情况是您要安装最新版本的cmake ,但不会更新操作系统的存储库。 例如,在我的情况下,我有一台运行Ubuntu 16.04的笔记本电脑,当我执行命令sudo apt install cmake ,安装的版本是3.5.1 ; 而不是3.12.3 ,这是cmake.org的当前版本。

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

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

A.建筑和安装(推荐)

A-1。 卸载Ubuntu软件包管理器提供的默认版本:

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

A2。 转到官方CMake网页 ,然后下载并解压缩最新版本。 在以下命令中更新versionbuild变量以获取所需的版本:

  version=3.12 build=3 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/ 

A-3。 运行以下命令安装提取的源:

  ./bootstrap make -j4 sudo make install 

A-4。 测试您的新cmake版本。

  $ cmake --version 

cmake --version结果:

  cmake version 3.12.X CMake suite maintained and supported by Kitware (kitware.com/cmake). 

B.使用二进制文件( cmake-gui正常工作)

B-1。 卸载Ubuntu软件包管理器提供的默认版本,如A-1所示

B-2。 转到官方CMake网页 ,然后在opt/cmake下载并安装最新的.sh版本 。 在以下命令中更新versionbuild变量以获取所需的版本:

  version=3.12 build=3 mkdir ~/temp cd ~/temp wget https://cmake.org/files/v$version/cmake-$version.$build-Linux-x86_64.sh sudo mkdir /opt/cmake sudo sh cmake-$version.$build-Linux-x86_64.sh --prefix=/opt/cmake 

B-3。 通过运行以下命令将已安装的二进制链接添加到/usr/local/bin/cmake

  sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake 

B-4。 像在A-4中一样测试新的cmake版本。

注意

在3.1.X中,X表示我们定义为build的版本的最后一部分。 如果更新cmake,则构建可能会更改。 根据官方网页, 最新版本是3.12.3 。 如果您想要早期版本3.11.4,只需替换版本和构建参数,如下所示:

  version=3.11 build=4 

首先卸载以前安装的任何cmake包 。 然后:

  1. 访问http://www.cmake.org/download/并下载最新的.sh安装程序

  2. 通过运行在opt/cmake安装它(例如)

     sudo mkdir /opt/cmake sudo sh  --prefix=/opt/cmake 
  3. 将cmake bin目录添加到您的路径: https : //askubuntu.com/a/170240/359343

以这种方式安装, cmake-gui看起来有点可怕,如果你找到一种解决方法,请随时编辑这个答案。

以防万一有人需要在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 

您还可以执行以下操作:

 export fn=/tmp/cmake.sh && ls $fn && (echo "use previous $fn? Enter for yes, ctrl+d for no." && read) || (wget -O $fn http://www.cmake.org/files/v3.0/cmake-3.0.2-Linux-i386.sh 1>&2) && (cd /opt && sudo bash ${fn} && echo sudo ln -f -s /opt/cmake*/bin/cmake /usr/local/bin/cmake && cd -) 

这个脚本

  • 如果已经在此会话中下载了,则获取3.0.2 **,如果未完成安装,则可以重复使用它
  • 然后它复制 链接到bin cmake

删除旧版本使用:

 apt-get purge cmake 

下载在tarball中存档的cmake二进制版本。 您可以通过将其bin目录路径添加到$PATH来使用新版本的cmake 。 另一种解决方案是提取tar.gz包并转到提取后生成的目录并运行以下命令:

 cp -r bin /usr/ cp -r doc /usr/share/ cp -r man /usr/share/ cp -r share /usr/ 

第二种方法与.deb包的安装过程相同!

对于Docker容器,最好运行

 RUN wget -qO- "https://cmake.org/files/v3.12/cmake-3.12.1-Linux-x86_64.tar.gz" | \ tar --strip-components=1 -xz -C /usr/local 

如果需要,调整版本。

我喜欢以下方式,因为你可以毫不费力地获得最新版本。

Kitware似乎正式支持pip wheel发布。 所以你可以通过以下方式获得最新的cmake:

pip install –upgrade cmake

这是关于它的博客: https : //blog.kitware.com/cmake-python-wheels/

要安装最新的Cmake版本,请执行他所说的@zwets并添加它

-o Acquire::Check-Valid-Until=false以避免问题所以命令会像这样

 sudo apt-get install cmake -o Acquire::Check-Valid-Until=false