27

I am looking for a reliable PPA for cmake backports.

I need it for both Xenial and Trusty (travis-ci). Ideally I would like to have at least cmake 3.8.

muru
  • 207,228
Juan Leni
  • 2,218
  • 5
  • 23
  • 32

3 Answers3

26

There is now an official CMake APT repository, hosted by Kitware (announcement), which has the latest CMake version. Currently, Ubuntu 16.04 (Xenial) and 18.04 (Bionic) are supported, but not Trusty. Instructions to set it up can be found at https://apt.kitware.com/ . I've reproduced key details here:

...

  1. If the kitware-archive-keyring package has not been installed previously, manually obtain a copy of our signing key:

    test -f /usr/share/doc/kitware-archive-keyring/copyright ||
    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
    
  2. Add the repository to your sources list and update.

    For Ubuntu Noble Numbat (24.04):

    echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ noble main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
    sudo apt-get update
    

    For Ubuntu Jammy Jellyfish (22.04):

    echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
    sudo apt-get update
    

    For Ubuntu Focal Fossa (20.04):

    echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
    sudo apt-get update
    
  3. If the kitware-archive-keyring package has not been installed previously, remove the manually obtained signed key to make room for the package:

    test -f /usr/share/doc/kitware-archive-keyring/copyright ||
    sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg
    

After this, sudo apt-get install cmake will install the latest CMake.

muru
  • 207,228
Justin
  • 361
18

I know I was asking for a PPA but in general terms any reliable deployment of cmake for 14.04/16.04 is good. Kitware's blog shows an answer:

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

They seem to officially support a pip wheels release. So you can get latest cmake just by doing:

pip install --upgrade cmake

In addition, if you are using virtualenv or conda, you can have different cmake versions at the same time.

Update: the pip package may show a low version number. At the moment, it is 0.8, however, it does install cmake 3.9

Juan Leni
  • 2,218
  • 5
  • 23
  • 32
11

There seems to be no reliable PPA with the most modern version of cmake in place but if you are happy with using prebuilt binaries from the cmake download page the following should help (for 64bit 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

This is not integrated with the Ubuntu package management system but installs neatly to /usr/local and on my system then demonstrates the following:

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

Subsequent removal is simply a matter of running the following single command in a Terminal window:

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

This leaves your system clean and perhaps ready to install an even more modern version :).

References:

  • cmake: Get the Software The official download page for cmake. Some extra information concerning the .sh installer files.
Melebius
  • 11,750
andrew.46
  • 39,359