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


86

我试图cmake在我的linux盒中安装最新版本,但总是出现以下异常-

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

您确定没有防火墙阻止您的连接吗?为什么要使用wget?尝试使用网络浏览器下载该文件(cmake.org/files/v2.8/cmake-2.8.11.tar.gz)。
埃里克·卡瓦略

这里有类似的问题:askubuntu.com/questions/610291/…答案很好。
椭圆视图

我认为您的问题是“如何在Linux中安装最新的cmake版本 ”,但是该命令sudo apt-get install cmake未安装最新版本。
Teocci '17

Answers:


22

www.cmake.org上的服务器可能很忙。您可以重试或使用网络浏览器下载文件。

但是,有一种更简单的方法:

sudo apt-get install cmake

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


3
ubuntu 12.04仅附带带有apt-get的cmake 2.8.7版。版本2的当前版本是2.8.12。我建议您坚持从源代码构建它。
理查德·霍奇斯

52
这不是正确的答案。最新版本几乎从未发布。
千载2015年

3
14.04仍在出货2.8
Stolas

4
这个答案是错误的。该StableReleaseUpdates政策是不是只为LTS版本。所有的 Ubuntu版本,一旦实际发布,只会获得针对安全漏洞或其他严重bug的修复。如此处所示(和Launchpad上所示),即使非LTS发行版也没有收到新cmake版本。确实存在某些软件包的单独反向端口(但不存在cmake)。
伊莱亚·卡根

10
这个答案是错误的,因为sudo apt-get install cmake它本身不会升级cmake到较新的版本。这不适用于任何Ubuntu版本。如果您的答案实际上是“将Ubuntu系统升级到较新的版本”,那么您可能需要再次编辑以使其更清晰。(但是,对于许多用户而言,这不是一个合理的解决方案,而且通常没有发行版的Ubuntu的存储库具有最新版本的cmake。)
Eliah Kagan

160

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

如何获得最新版本?

好了,我们可以通过以下方法之一安装它:构建和安装使用二进制文件

A.建造和安装(推荐)

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

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

要么:

sudo apt purge --auto-remove cmake

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

version=3.15
build=4
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 -j$(nproc)
sudo make install

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

$ cmake --version

结果cmake --version

cmake version 3.15.X

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

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

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

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

version=3.15
build=4
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。cmake按照A-4中的要求测试新版本。

注意

3.15.X中X表示我们定义为build的版本的最后一部分。如果更新了cmake,则构建可能会更改。根据官方网页,最新版本是3.15.4。如果要使用早期版本3.14.7,只需替换版本并构建如下参数:

version=3.14
build=7

14
make install命令需要root特权。cmake --version命令仅在打开新终端后才起作用,因为默认情况下,cmake安装在/ usr / local / bin /下,而不是/ usr / bin /下。
HD189733b

@Teocci,我长期以来一直尝试通过各种方式来做到这一点,只有您的决定对我有所帮助。非常感谢!!!))))))
Neo

很高兴这个答案对您有所帮助。祝您编程愉快,一切顺利。
Teocci's

2
这不是UPDATE的解决方案,而是INSTALL cmake的解决方案。尝试使用此命令或在Google上查找解决方案:sudo apt-get remove cmake cmake-data
Teocci

1
请注意,也要构建cmake-gui工具,请将--qt-gui添加到bootstrap命令中。
理查德·怀特海德

41

首先卸载以前安装的所有cmake软件包。然后:

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

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

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

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


7
从/ usr / local / bin / cmake添加一个链接到已安装的二进制文件。这样就无需更改PATH。 sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
基督教徒

2
这是最好的答案。
SuB

3
确实,这对于最初的问题来说是最有用的答案
amigo421'1Dec

这给了我破碎的cmake-gui,它不能在xRDP上工作(上一个版本有效),而xRDP是访问服务器的唯一方法。
stiv

@stiv 1.您是否cmake在安装正常后进行验证,并且cmake您的路径中没有其他版本?2.是否可以验证您是否使用的是安装中提供的cmake-gui,而不是某些旧版本?(要知道版本,请附加--version到命令行)
Antonio

23

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

3
不错,没有文档说明--skip-license选项:)
4LegsDrivenCat


6

Kitware现在具有一个APT存储库,该存储库当前支持Ubuntu 16.04和18.04

安装说明:

  1. 删除旧版本的cmake

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

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  3. 将存储库添加到您的源列表

    一种。对于Ubuntu Bionic Beaver(18.04)

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

    b。对于Ubuntu Xenial Xerus(16.04)

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

    sudo apt update
    sudo apt install cmake
    

4

您还可以执行以下操作:

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 -)

这个脚本

  • 提取make 3.0.2 **(如果已在此会话中下载了该文件),如果未完成安装,则可以重用它
  • 然后它复制 使链接到垃圾箱cmake

3

对于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

如果需要,请调整版本。


2

使用以下方法删除旧版本:

apt-get purge cmake

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

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

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


1

从许多最新版本驻留的反向端口安装最新版本的cmake。特定的反向端口取决于您当前的操作系统版本。例如,运行Debian Stretch,将以下内容添加到/etc/apt/sources.list

deb http://ftp.debian.org/debian stretch-backports main

然后从这个反向端口安装,也就是:

sudo apt-get -t stretch-backports install -y cmake

0

您可以通过snap找到最新版本的cmake。例如,在撰写此答案时,cmake的最新版本为3.15.3,而snap的版本为3.15.2。

sudo apt-get purge cmake
sudo snap install cmake --classic

0

qwr使用snap的答案可能很好,但是如果您想要更新的东西,cmake可以使从源代码构建DEB变得容易。以下假设您已经安装了最新的cmake。Ubuntu 18.04的apt install cmake肯定会在这里工作。

sudo apt-get build-dep cmake
git clone http://www.cmake.org/cmake.git
cd cmake
git tag
# find the highest tagged release value (hint, rarely at the bottom)
git co tags/<highest tagged release value>
mkdir build
cd build
cmake ..
cmake --build .
cpack -G DEB
# you built a single deb that has what Ubuntu provides as two debs, the binary
# deb and the additional architecture independent data files
sudo apt remove cmake-data
sudo dpkg -i cmake-<highest tagged release value>-Linux-x86_64.deb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.