Czy istnieje dobry PPA dla backportów cmake?

17

Szukam niezawodnego PPA dla backportów cmake.

Potrzebuję go zarówno dla Xenial, jak i Trusty (travis-ci). Idealnie chciałbym mieć co najmniej cmake 3.8.

Juan Leni
źródło

Odpowiedzi:

16

Wiem, że prosiłem o PPA, ale ogólnie rzecz biorąc, każde niezawodne wdrożenie cmake dla 14.04 / 16.04 jest dobre. Blog Kitware zawiera odpowiedź:

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

Wydaje się, że oficjalnie popierają zwolnienie kół pip. Aby uzyskać najnowszą wersję cmake, wykonując:

pip install --upgrade cmake

Ponadto, jeśli używasz virtualenv lub conda, możesz mieć różne wersje cmake w tym samym czasie.

Aktualizacja: pakiet pip może wyświetlać niski numer wersji. W tej chwili jest 0,8, jednak instaluje cmake 3.9

Juan Leni
źródło
miał właśnie zainstalować cmake-0.8.0
Mina Michael
Przepraszam, nie jestem pewien, czy rozumiem twój komentarz
Juan Leni,
Zrobiłem pip install --upgrade cmake, ale mam to: Downloading cmake-0.8.0-cp27-cp27mu-manylinux1_x86_64.whl (19.2MB) 1% |▋ | 337kBthx
Mina Michael
1
tak, wersja 0.8.0 odnosi się do wersji pakietu pip. Wersja cmake, którą instaluje, to 3.9 (sprawdź tutaj pypi.python.org/pypi/cmake )
Juan Leni
1
Widzę. Mój błąd, ale jest mylący! bardzo dziękuję
Mina Michael,
12

Istnieje teraz oficjalne repozytorium CMake APT, hostowane przez Kitware ( ogłoszenie ), które ma najnowszą wersję CMake. Obecnie obsługiwane są Ubuntu 16.04 (Xenial) i 18.04 (Bionic), ale nie Trusty. Instrukcje konfiguracji można znaleźć na stronie https://apt.kitware.com/ . Tutaj odtworzyłem kluczowe szczegóły:

...

  1. Uzyskaj kopię naszego klucza do podpisu:

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  2. Dodaj repozytorium do listy źródeł i zaktualizuj.

    W przypadku Ubuntu Bionic Beaver (18.04):

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

    W przypadku Ubuntu Xenial Xerus (16.04):

    sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ xenial main' 
    sudo apt-get update
    
  3. Jako opcjonalny krok zalecamy zainstalowanie naszego kitware-archive-keyringpakietu, aby upewnić się, że Twój brelok będzie aktualny, gdy będziemy obracać klucze. Wykonaj następujące czynności:

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

Następnie sudo apt-get install cmakezainstaluje najnowszą wersję CMake.

Justin
źródło
Doskonale - dziękuję za tę informację. Od lipca 2019 r. To repozytorium dostarczyło cmake 3.14.5 dla Ubuntu 16.04.
davidA
To repozytorium nie obsługuje architektury arm64.
Victor Lamoine,
10

Wydaje się, że brak jest wiarygodnych PPA z najnowocześniejszych wersji z cmakena miejscu, ale jeśli jesteś zadowolony z użyciem binarne skompilowane ze cmakestrony pobierania Poniższy powinno pomóc (dla Ubuntu 64bit):

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

Nie jest to zintegrowane z systemem zarządzania pakietami Ubuntu, ale instaluje się starannie /usr/localw moim systemie i pokazuje, co następuje:

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

Późniejsze usunięcie polega po prostu na uruchomieniu następującego pojedynczego polecenia w oknie terminala:

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

To pozostawia twój system czysty i być może gotowy do zainstalowania jeszcze bardziej nowoczesnej wersji :).

Bibliografia:

andrew.46
źródło
Dzięki. Szukałem ppa dla Ubuntu do użycia w Travis-ci. Mógłbym sam zbudować coś dla lokalnego komputera, ale chciałbym tego uniknąć na serwerze CI. Mimo to dostałem odpowiedź, której szukałem: brak niezawodnego PPA ...
Juan Leni,
Do usunięcia jest jeszcze kilka plików. Znajdź je za pomocą find /usr/local -name '*cmake*' -o -name '*cpack*' -o -name '*ctest*'.
Melebius