有没有一个适用于cmake的好PPA来进行后续支持?

我正在寻找一个可靠的PPA来进行cmake的后期支持。
我需要它适用于Xenial和Trusty(travis-ci)。理想情况下,我希望至少有cmake 3.8版本。
3个回答

现在有一个官方的CMake APT仓库,由Kitware托管(announcement),其中包含最新的CMake版本。目前支持Ubuntu 16.04(Xenial)和18.04(Bionic),但不支持Trusty。设置方法可以在https://apt.kitware.com/找到。以下是关键细节的复制:

...

  1. 获取我们的签名密钥的副本:

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  2. 将软件源添加到您的源列表并更新。

    对于 Ubuntu Bionic Beaver (18.04):

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

    对于 Ubuntu Xenial Xerus (16.04):

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main' 
    sudo apt-get update
    
  3. 作为可选步骤,我们建议您还安装我们的 kitware-archive-keyring 软件包,以确保您的密钥环保持最新,因为我们会轮换我们的密钥。请执行以下操作:

    sudo apt-get install kitware-archive-keyring
    sudo apt-key --keyring /etc/apt/trusted.gpg del C1F34CDD40CD72DA
    

在此之后,sudo apt-get install cmake 将会安装最新版本的CMake。


非常好 - 謝謝您提供的信息。截至2019年7月,這個存儲庫為Ubuntu 16.04提供了cmake 3.14.5版本。 - davidA
1该存储库不支持arm64架构。 - Victor Lamoine
1这也支持20.04 LTS(focal) - Alex Reinking
从Kitware git存储库构建和安装arm64 / aarch64 .deb软件包(在Jetson Nano上使用Ubuntu 18.04进行测试,应该也适用于较新的Ubuntu版本):cd /tmp/ && git clone https://gitlab.kitware.com/debian/cmake.git && cd cmake && perl -pi -e 's|(verify-build-flags:)|$1\n\t\$(call \$(flag_action),BUILD_TESTING,OFF,"跳过测试")|' ./debian/rules && sudo mk-build-deps -irt 'apt -y' && dpkg-buildpackage -b -rfakeroot -us -uc && sudo apt -y install ../cmake*.deb(这里使用perl来关闭测试,因为测试需要很长时间,并且对二进制软件包没有任何影响)。 - Lissanro Rayen
我们可以在哪里找到软件包索引? 我想查看每个操作系统建议使用的CMake版本。当我使用CMake 3.27与pybind时遇到了一些问题。 - undefined

我知道我在寻求一个PPA,但总体而言,对于14.04/16.04的任何可靠的cmake部署都是好的。Kitware的博客上显示了一个答案。

https://blog.kitware.com/cmake-python-wheels/

他们似乎正式支持pip wheels版本发布。所以你只需执行以下命令即可获取最新的cmake:

pip install --upgrade cmake

此外,如果你正在使用virtualenv或conda,你可以同时拥有不同的cmake版本。

更新:pip包可能显示一个较低的版本号。目前为止,它是0.8,但实际上会安装cmake 3.9。


即将安装cmake-0.8.0 - steoiatsl
抱歉,我不确定我理解你的评论。 - Juan Leni
我执行了pip install --upgrade cmake,但是出现了这个错误:正在下载 cmake-0.8.0-cp27-cp27mu-manylinux1_x86_64.whl (19.2MB) 1% |▋ | 337kB 谢谢 - steoiatsl
1是的,版本0.8.0指的是pip软件包版本。它安装的cmake版本是3.9(在此处检查https://pypi.python.org/pypi/cmake/)。 - Juan Leni
1我明白了。是我的错,但确实有点令人困惑!非常感谢。 - steoiatsl

似乎没有可靠的PPA提供最新版本cmake,但如果您愿意使用来自cmake下载页面的预编译二进制文件,以下内容可能会有所帮助(适用于64位Ubuntu):

cd $HOME
wget https://cmake.org/files/v3.12/cmake-3.12.0-Linux-x86_64.sh
sudo sh cmake-3.12.0-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir

这个没有与Ubuntu软件包管理系统集成,但是可以干净地安装到/usr/local,然后在我的系统上展示以下内容:

andrew@ilium:~$ cmake --version | head -n1
cmake version 3.12.0

后续的移除只需在终端窗口中运行以下单个命令即可完成。
sudo rm -rfv /usr/local/bin/{cmake,cpack,ccmake,cmake-gui,ctest} \
             /usr/local/doc/cmake \
             /usr/local/man/man1/{ccmake.1,cmake.1,cmake-gui.1,cpack.1,ctest.1} \
             /usr/local/man/man7/cmake-* \
             /usr/local/share/cmake-3.12

这将使您的系统变得干净,也许准备安装更现代的版本 :).

参考:

  • cmake: 获取软件 cmake的官方下载页面。关于.sh安装程序文件的一些额外信息。

谢谢。我在寻找一个适用于travis-ci的Ubuntu ppa。我可以自己为本地计算机构建东西,但我希望在CI服务器上避免这样做。不过,我得到了我想要的答案:没有可靠的PPA可用... - Juan Leni
还有一些文件需要删除。使用find /usr/local -name '*cmake*' -o -name '*cpack*' -o -name '*ctest*'来找到它们。 - Melebius