我正在尝试在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


评论

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

类似的问题在这里:askubuntu.com/questions/610291/…答案很好。

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

askubuntu.com/a/952929/579410

#1 楼

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

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

sudo apt-get install cmake


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

评论


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

–理查德·霍奇斯(Richard Hodges)
14年6月16日在17:23

这不是正确的答案。最新版本几乎从未发布。

–Senjai
15年2月20日在6:09

14.04仍在出货2.8

– Stolas
16 Mar 17 '16 at 9:22

这个答案是错误的。 StableReleaseUpdates策略不仅适用于LTS版本。所有的Ubuntu版本,一旦实际发布,仅会获得针对安全漏洞或其他严重bug的修复。如此处所示(以及在Launchpad上),即使非LTS版本也没有收到新的cmake版本。确实存在某些软件包的单独反向端口(但不存在cmake)。

– Eliah Kagan
17年8月4日在11:56

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

– Eliah Kagan
17年8月23日在13:55



#2 楼

最常见的情况是您要安装最新版本的cmake,但操作系统的存储库未更新。例如,在我的情况下,我有一台运行Ubuntu 16.04的笔记本电脑,执行命令sudo apt install cmake时,安装的版本是3.5.1;而不是cmake.org上的当前版本3.19.1。
如何获取最新版本?
我们可以通过以下方法之一进行安装:构建和安装或使用二进制文件文件。
A.构造和安装(推荐)
A-1。使用以下命令卸载Ubuntu软件包管理器提供的默认版本和配置:
 sudo apt remove --purge --auto-remove cmake
 

或:
 sudo apt purge --auto-remove cmake
 

A-2。转到CMake官方网页,然后下载并提取最新版本。在以下命令中更新versionbuild变量以获取所需的版本:
 version=3.19
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/
 

A-3。通过运行以下命令安装提取的源:
 ./bootstrap
make -j$(nproc)
sudo make install
 

A-4。测试新的cmake版本。
 $ cmake --version
 

cmake --version的结果:
 cmake version 3.19.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.19
build=1
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.19.X中,X表示我们定义为build的版本的最后一部分。如果更新了cmake,则构建可能会更改。根据官方网页,最新版本是3.19.1。如果要使用早期版本3.18.5,只需替换版本并构建如下参数:
 version=3.18
build=5
 


评论


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

– HD189733b
17年1月22日在19:10

@Teocci,我长期以来一直尝试通过各种方式来执行此操作,只有您的决定对我有所帮助。非常感谢你!!!)))))))

– neo
17年3月21日在13:49

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

– Teocci
17 Mar 22 '17 at 0:19

这不是UPDATE的解决方案,而是INSTALL cmake的解决方案。试试这个命令或用谷歌搜索解决方案:sudo apt-get remove cmake cmake-data

– Teocci
17/12/26在2:18



请注意,也要构建cmake-gui工具,请将--qt-gui添加到bootstrap命令中。

–Richard Whitehead
18-3-12在16:53



#3 楼

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


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

在以下位置安装(例如)通过运行
opt/cmake
sudo mkdir /opt/cmake
sudo sh <installer filename> --prefix=/opt/cmake


将cmake bin目录添加到路径:https://askubuntu.com/a/170240/359343

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

评论


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

–基督徒
16年3月16日在14:30

这是最好的答案。

– SuB
16-11-20在9:59

确实,这是初始问题最有用的答案

–amigo421
16年1月1日在19:37

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

–stiv
18 Mar 28 '18 at 18:56

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

– Antonio
18-3-29在16:22



#4 楼

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

安装说明:




删除旧版本的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 Focal Fossa(20.04)

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


b。对于Ubuntu Bionic Beaver(18.04)

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



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



更新和安装

sudo apt update
sudo apt install cmake




评论


迄今为止的最佳解决方案,但存储库不支持arm64体系结构。

– Victor Lamoine
19年11月12日在18:01

相关链接:cmake.org/download apt.kitware.com

– Wisbucky
20-2-20在19:28

最好的解决方案..谢谢

– Anuvrat Tiku
20-2-28在0:07

不安全的回购错误W:GPG错误:apt.kitware.com/ubuntu仿生InRelease:无法验证以下签名,因为公用密钥不可用:NO_PUBKEY 291F9FF6FD385783 E:存储库apt.kitware.com/ubuntu仿生InRelease '未签名。 N:无法安全地从这样的存储库更新,因此默认情况下被禁用。 N:有关存储库创建和用户配置的详细信息,请参见apt-secure(8)联机帮助页。更好地使用下面的PIP方法

–Bizmate
20 Sep 3 '20 at 8:38

#5 楼

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


评论


不错,未公开的--skip-license选项:)

– 4LegsDrivenCat
17年6月15日在4:22

@ 4LegsDrivenCat,--help显示此选项,没有其他文档。

–火神乌鸦
20 Jan 26'4:09

@vulcanraven它已于2018-12-01在v.3.10.0中添加到--help。这个答案和我的评论参考3.7.2。

– 4LegsDrivenCat
20年1月29日在8:34

#6 楼

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

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


pip install --upgrade cmake


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

评论


绝对是最有用的答案!我希望我在一年前想到了这一点。谢谢!

–白化Cordeiro
20年5月7日在20:05

这可能是最简单的方法之一!

–克里斯
20年6月19日在16:00

谢谢!这比替代方案容易得多。

– RReverser
20年7月17日在12:49

很高兴听到人们发现它有用。 IMO是最简单,最可靠的方法。而且它也得到官方支持

– Juan Leni
20年7月17日在19:20

谢谢。您编写的步骤对我完全不起作用,但进行了一些细微调整,但它们确实起作用:在20.04.1 LTS(Focal Fossa)上,我首先必须使用apt-get install -y python3-pip安装pip。然后我可以使用pip3 install --upgrade cmake安装Cmake

–西蒙·基桑(Simon Kissane)
1月3日7:24

#7 楼

您还可以执行以下命令:

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


#8 楼

使用以下命令删除旧版本:

apt-get purge cmake


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

#9 楼

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


根据需要调整版本。

#10 楼

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

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


评论


假设为bash终端,则以后可能需要hash -r以确保找到更新的cmake二进制文件。

–hertzsprung
20年8月18日在8:56

#11 楼

从存在许多最新版本的反向端口安装最新版本的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


#12 楼

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