Come installo l'ultima versione di cmake dalla riga di comando?


87

Sto provando a installare l'ultima cmakenella mia scatola di Linux e ottengo sempre l'eccezione di seguito -

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

Ci riprova sempre ... Qualche pensiero?

Qualcuno sa che cosa sto facendo di sbagliato qui? O c'è un modo migliore per installare l'ultima versione di cmake nella mia scatola di Linux?

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

Sei sicuro che non ci sia un firewall che blocca la tua connessione? Perché usare wget? Prova a scaricare quel file ( cmake.org/files/v2.8/cmake-2.8.11.tar.gz ) usando un browser web.
Eric Carvalho,

Domanda simile qui: askubuntu.com/questions/610291/… con una buona risposta.
Vista ellittica

Penso che la tua domanda sia "Come installare l' ultima versione di cmake in Linux" ma il comando sudo apt-get install cmakenon installa l'ultima versione.
Teocci,

Risposte:


23

Probabilmente il server su www.cmake.org era molto occupato. Puoi riprovare o scaricare il file utilizzando il tuo browser web.

Esiste tuttavia un modo molto più semplice:

sudo apt-get install cmake

Aggiornamento: i commentatori sottolineano che "Ubuntu 12.04 sta spedendo solo v2.8.7" e "14.04 sta ancora spedendo 2.8" . Questo per un motivo: 12.04 e 14.04 sono versioni LTS di Ubuntu. Le versioni LTS sono destinate a rimanere stabili per 5 anni, quindi ricevono solo aggiornamenti critici e di sicurezza, non le ultime versioni dei pacchetti. Le versioni normali escono ogni 6 mesi e quindi hanno maggiori probabilità di venire con un recente cmake.


3
ubuntu 12.04 spedisce solo la versione 2.8.7 di cmake con apt-get. L'attuale versione della versione 2 è 2.8.12. Ti suggerisco di perseverare nel costruirlo dalla fonte.
Richard Hodges,

52
Questa non è la risposta corretta L'ultima versione non è quasi mai su apt.
Senjai,

3
14.04 spedizione ancora 2.8
Stolas

4
Questa risposta è sbagliata La politica StableReleaseUpdates non è solo per le versioni LTS. Tutte le versioni di Ubuntu, una volta effettivamente rilasciate, ricevono solo correzioni per vulnerabilità di sicurezza o bug altrimenti gravi. Come mostrato qui (e su Launchpad ), anche le versioni non LTS non hanno ricevuto nuove cmakeversioni. Esistono backport separati per alcuni pacchetti (ma non cmake).
Eliah Kagan,

10
Questa risposta è sbagliata perché di sudo apt-get install cmakeper sé non si aggiorna mai cmakea una versione più recente. Questo non funziona su nessuna versione di Ubuntu. Se la tua risposta è in realtà "aggiorna il tuo sistema Ubuntu a una versione più recente", potresti voler modificare nuovamente per renderlo più chiaro. (Questa non sarebbe una soluzione ragionevole per molti utenti, tuttavia, e spesso non esiste una versione rilasciata di Ubuntu i cui repository hanno l'ultima versione di cmake.)
Eliah Kagan,

160

La situazione più comune è quando si desidera installare l'ultima versione di cmake , ma i repository del sistema operativo non vengono aggiornati. Ad esempio, nel mio caso ho un laptop con Ubuntu 16.04 e quando ho eseguito il comando sudo apt install cmakela versione installata era 3.5.1 ; invece di 3.15.4 che è la versione corrente su cmake.org .

Come posso ottenere l'ultima versione?

Bene, possiamo installarlo seguendo uno di questi metodi: Creazione e installazione o utilizzo di file binari .

A. Costruzione e installazione (consigliato)

A-1. Disinstallare la versione predefinita fornita dal gestore dei pacchetti e dalla configurazione di Ubuntu utilizzando:

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

o:

sudo apt purge --auto-remove cmake

A-2. Vai alla pagina ufficiale di CMake , quindi scarica ed estrai l'ultima versione. Aggiorna le variabili versione buildnel seguente comando per ottenere la versione desiderata:

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. Installa la fonte estratta eseguendo:

./bootstrap
make -j$(nproc)
sudo make install

A-4. Prova la tua nuova cmakeversione.

$ cmake --version

Risultati di cmake --version:

cmake version 3.15.X

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

B. Utilizzo di file binari ( cmake-guinon funzionerà bene)

B-1. Disinstallare la versione predefinita fornita dal gestore dei pacchetti di Ubuntu come in A-1 .

B-2. Vai alla pagina ufficiale di CMake , quindi scarica e installa la .shversione più recente in opt/cmake. Aggiorna le variabili versione buildnel seguente comando per ottenere la versione desiderata:

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. Aggiungi il collegamento binario installato /usr/local/bin/cmakeeseguendo questo:

sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake

B-4. Prova la tua nuova cmakeversione come in A-4 .

Nota

In 3.15.X la X rappresenta l'ultima parte della versione che abbiamo definito come build. La build può cambiare se cmake viene aggiornato. Secondo la pagina web ufficiale, l' ultima versione è la 3.15.4 . Se vuoi la versione precedente 3.14.7 basta sostituire la versione e costruire parametri come questo:

version=3.14
build=7

14
Il comando make install necessita dei privilegi di root. Il comando cmake --version funziona solo dopo aver aperto un nuovo terminale perché cmake è installato in / usr / local / bin / per impostazione predefinita, non / usr / bin /.
HD189733b,

@Teocci, ho cercato a lungo di farlo in vari modi, e solo la tua decisione mi ha aiutato. Grazie mille !!!)))))))
neo

Sono contento che questa risposta ti abbia aiutato. Buona programmazione e tutto il meglio.
Teocci,

2
Questa non è una soluzione per AGGIORNARE ma INSTALLARE cmake. Prova questo comando o sudo apt-get remove cmake cmake-data
cercalo su

1
Nota per compilare anche lo strumento cmake-gui, aggiungi --qt-gui al comando bootstrap.
Richard Whitehead,

41

Disinstallare innanzitutto qualsiasi pacchetto cmake precedentemente installato. Poi:

  1. Vai su http://www.cmake.org/download/ e scarica l'ultimo programma di installazione .sh

  2. Installalo (per esempio) opt/cmakeeseguendolo

    sudo mkdir /opt/cmake
    sudo sh <installer filename> --prefix=/opt/cmake
    
  3. Aggiungi la directory cmake bin al tuo percorso: https://askubuntu.com/a/170240/359343

Installato in questo modo, cmake-guisembra un po 'orribile, se trovi un modo per risolverlo non esitare a modificare questa risposta.


7
Aggiungi un collegamento da / usr / local / bin / cmake al binario installato. In questo modo non è necessario cambiare il PERCORSO. sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
Christian

2
Questa è la risposta migliore
SuB,

3
davvero, questa è la risposta più utile per la domanda iniziale
amigo421

Questo mi dà cmake-gui rotto, che non funziona su xRDP (versione precedente funzionante), e xRDP è l'unico modo per accedere al server.
dal

@stiv 1. Hai verificato che cmakel'installazione ha funzionato e che non hai altre cmakeversioni nel tuo percorso? 2. Puoi verificare se stai usando la cmake-gui fornita nell'installazione e non una versione precedente? (Per conoscere la versione, aggiungi --versionalla riga di comando)
Antonio

23

Nel caso in cui qualcuno abbia bisogno di installare l'ultimo CMAKE in un'immagine docker (come me ..). In questo caso è 3.7.2, ma puoi controllare qui https://cmake.org/download/ come già indicato

#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
Opzione di licenza --skip piacevole, non documentata :)
4LegsDrivenCat

14

Adoro il modo seguente perché puoi ottenere una versione recente senza troppi problemi.

Kitware sembra supportare ufficialmente un rilascio di ruote di pip. Quindi puoi ottenere l'ultimo cmake semplicemente facendo:

pip install - aggiorna cmake

Ecco il blog a riguardo: https://blog.kitware.com/cmake-python-wheels/


7

Kitware ora ha un repository APT che attualmente supporta Ubuntu 16.04 e 18.04

Istruzioni per l'installazione:

  1. Rimuovi la vecchia versione di cmake

    sudo apt purge --auto-remove cmake
    
  2. Ottieni una copia della chiave di firma

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  3. Aggiungi il repository all'elenco delle fonti

    un. Per Ubuntu Bionic Beaver (18.04)

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

    b. Per Ubuntu Xenial Xerus (16.04)

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

    sudo apt update
    sudo apt install cmake
    

4

È inoltre possibile eseguire quanto segue:

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

Questa sceneggiatura

  • recupera make 3.0.2 ** se è già stato scaricato in questa sessione, è possibile riutilizzarlo se non si completa l'installazione
  • quindi copia rende il collegamento al cestino cmake.

3

Per un contenitore Docker, eseguire al meglio

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

Regola la versione, se necessario.


2

Rimuovi la vecchia versione usando:

apt-get purge cmake

Scarica la versione binaria di cmakearchiviata in un tarball. È possibile utilizzare la nuova versione di cmakeaggiungendo il binpercorso della directory a $PATH. Una soluzione alternativa è estrarre il tar.gzpacchetto e andare alla directory creata dopo l'estrazione ed eseguire i seguenti comandi:

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

Il secondo metodo è lo stesso del processo di installazione del .debpacchetto!


1

Installa l'ultima versione di cmake dai backport, dove risiedono molte ultime versioni. I backport particolari dipendono dalla versione corrente del sistema operativo. Ad esempio, eseguendo Debian Stretch, aggiungi quanto segue a /etc/apt/sources.list

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

Quindi installare da questo backport, ovvero:

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

0

Puoi trovare versioni molto recenti di cmake tramite snap. Ad esempio, al momento di scrivere questa risposta, l'ultima versione di cmake è 3.15.3 e snap ha la versione 3.15.2.

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

0

La risposta di qwr per usare snap può essere buona, ma se vuoi qualcosa di ancora più nuovo, cmake rende facile la creazione di un DEB dal sorgente. Quanto segue presuppone che tu abbia già installato un cmake recente. Cmake di installazione apt di Ubuntu 18.04 funzionerà sicuramente qui.

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.