¿Cómo instalo la última versión de cmake desde la línea de comandos?

87

Estoy tratando de instalar lo último cmakeen mi Linux Box y siempre recibo la siguiente excepción:

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

Siempre está volviendo a intentar ... ¿Alguna idea?

¿Alguien sabe qué mal estoy haciendo aquí? ¿O hay alguna forma mejor de instalar la última versión de cmake en mi linux box?

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
SSH
fuente
¿Estás seguro de que no hay un firewall que bloquee tu conexión? ¿Por qué usar wget? Intente descargar ese archivo ( cmake.org/files/v2.8/cmake-2.8.11.tar.gz ) utilizando un navegador web.
Eric Carvalho
Pregunta similar aquí: askubuntu.com/questions/610291/... con una buena respuesta.
Vista elíptica
Creo que su pregunta es "Cómo instalar la última versión de cmake en Linux" pero el comando sudo apt-get install cmakeno instala la última versión.
Teocci

Respuestas:

23

Probablemente el servidor de www.cmake.org estaba muy ocupado. Puede volver a intentarlo o descargar el archivo con su navegador web.

Sin embargo, hay una manera mucho más simple:

sudo apt-get install cmake

Actualización: los comentaristas señalan que "Ubuntu 12.04 solo está enviando v2.8.7" y "14.04 todavía está enviando 2.8" . Eso es por una razón: 12.04 y 14.04 son versiones LTS de Ubuntu. Las versiones LTS están destinadas a permanecer estables durante 5 años, por lo que solo reciben actualizaciones críticas y de seguridad, no las últimas versiones de paquetes. Los lanzamientos normales salen cada 6 meses y, por lo tanto, es más probable que vengan con un cmake reciente.

zwets
fuente
3
ubuntu 12.04 solo envía v 2.8.7 de cmake con apt-get. La versión actual de la versión 2 es 2.8.12. Te sugiero que persevere con su construcción desde la fuente.
Richard Hodges
52
Esta no es la respuesta correcta. La última versión casi nunca está en apt.
Senjai
3
14.04 todavía envío 2.8
Estolas
44
Esta respuesta es incorrecta. La política StableReleaseUpdates no es solo para lanzamientos de LTS. Todos los lanzamientos de Ubuntu, una vez que se lanzan, solo obtienen soluciones para vulnerabilidades de seguridad o errores graves. Como se muestra aquí (y en Launchpad ), incluso las versiones que no son LTS no han recibido nuevas cmakeversiones. Existen backports separados para algunos paquetes (pero no cmake).
Eliah Kagan
10
Esta respuesta es incorrecta porque sudo apt-get install cmake, por sí sola, nunca se actualiza cmakea una versión más nueva. Esto no funciona en ninguna versión de Ubuntu. Si su respuesta es en realidad "actualizar su sistema Ubuntu a una versión más reciente", es posible que desee editar nuevamente para aclararlo. (Sin embargo, esa no sería una solución razonable para muchos usuarios, y a menudo no hay una versión lanzada de Ubuntu cuyos repositorios tengan la última versión de cmake.)
Eliah Kagan
160

La situación más común es cuando desea instalar la última versión de cmake , pero los repositorios de su sistema operativo no están actualizados. Por ejemplo, en mi caso tengo una computadora portátil con Ubuntu 16.04 , y cuando ejecuté el comando sudo apt install cmakela versión instalada era 3.5.1 ; en lugar de 3.15.4, que es la versión actual en cmake.org .

¿Cómo puedo obtener la última versión?

Bueno, podemos instalarlo siguiendo uno de estos métodos: compilar e instalar o usar archivos binarios .

A. Construcción e instalación (recomendado)

A-1. Desinstale la versión predeterminada proporcionada por el administrador de paquetes y la configuración de Ubuntu usando:

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

o:

sudo apt purge --auto-remove cmake

A-2 Vaya a la página web oficial de CMake , luego descargue y extraiga la última versión. Actualice las variables versiony builden el siguiente comando para obtener la versión deseada:

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. Instale la fuente extraída ejecutando:

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

A-4. Prueba tu nueva cmakeversión.

$ cmake --version

Resultados de cmake --version:

cmake version 3.15.X

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

B. Uso de archivos binarios ( cmake-guino funcionará bien)

B-1. Desinstale la versión predeterminada proporcionada por el administrador de paquetes de Ubuntu como en A-1 .

B-2 Vaya a la página web oficial de CMake , luego descargue e instale la última .shversión en opt/cmake. Actualice las variables versiony builden el siguiente comando para obtener la versión deseada:

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. Agregue el enlace binario instalado /usr/local/bin/cmakeejecutando esto:

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

B-4. Pruebe su nueva cmakeversión como en A-4 .

Nota

En 3.15.X, la X representa la última parte de la versión que definimos como compilación. La compilación puede cambiar si se actualiza cmake . Según la página web oficial, la última versión es 3.15.4 . Si desea la versión anterior 3.14.7, simplemente reemplace la versión y cree parámetros como este:

version=3.14
build=7
Teocci
fuente
14
El comando make install necesita privilegios de root. El comando cmake --version solo funciona después de abrir un nuevo terminal porque cmake está instalado en / usr / local / bin / por defecto, no / usr / bin /.
HD189733b
@Teocci, he intentado hacer esto de varias maneras, y solo su decisión me ayudó. Muchas gracias !!!)))))))
neo
Me alegra que esta respuesta te haya ayudado. Feliz codificación y todo lo mejor.
Teocci
2
Esta no es una solución para ACTUALIZAR, sino para INSTALAR cmake. Pruebe este comando o búsquelo en Google para encontrar una solución:sudo apt-get remove cmake cmake-data
Teocci
1
Nota para construir también la herramienta cmake-gui, agregue --qt-gui al comando bootstrap.
Richard Whitehead
41

Primero desinstale cualquier paquete cmake instalado previamente. Entonces:

  1. Vaya a http://www.cmake.org/download/ y descargue el último instalador .sh

  2. Instálalo (por ejemplo) opt/cmakeejecutando

    sudo mkdir /opt/cmake
    sudo sh <installer filename> --prefix=/opt/cmake
    
  3. Agregue el directorio cmake bin a su ruta: https://askubuntu.com/a/170240/359343

Instalado de esta manera, se cmake-guive un poco horrible, si encuentra una manera de solucionarlo, no dude en editar esta respuesta.

Antonio
fuente
77
Agregue un enlace de / usr / local / bin / cmake al binario instalado. De esta manera no hay necesidad de cambiar la RUTA. sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
Christian
2
Esta es la mejor respuesta.
SuB
3
Realmente, esta es la respuesta más útil para la pregunta inicial
amigo421
Esto me da un cmake-gui roto, que no funciona sobre xRDP (la versión anterior funcionaba), y xRDP es la única forma de acceder al servidor.
stiv
@stiv 1. ¿Verificó cmakedespués de que la instalación funciona, y que no tiene otra cmakeversión en su camino? 2. ¿Puede verificar si está utilizando el cmake-gui proporcionado en la instalación y no alguna versión anterior? (Para conocer la versión, agregue --versiona la línea de comando)
Antonio
23

Por si acaso, si alguien necesita instalar el último CMAKE en una imagen acoplable (como yo ...). En este caso es 3.7.2, pero puede consultar aquí https://cmake.org/download/ como ya se señaló

#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
Paolo Vigori
fuente
3
Agradable, indocumentado - opción de licencia
skip
14

Me encanta la siguiente manera porque puedes obtener una versión reciente sin muchos problemas.

Kitware parece admitir oficialmente un lanzamiento de ruedas de pepitas. Para que pueda obtener el último cmake simplemente haciendo:

pip install --upgrade cmake

Aquí está el blog al respecto: https://blog.kitware.com/cmake-python-wheels/

Juan leni
fuente
7

Kitware ahora tiene un repositorio APT que actualmente es compatible con Ubuntu 16.04 y 18.04

Instrucciones de instalación:

  1. Eliminar la versión anterior de cmake

    sudo apt purge --auto-remove cmake
    
  2. Obtenga una copia de la clave de firma

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add -
    
  3. Agregue el repositorio a su lista de fuentes

    a. Para Ubuntu Bionic Beaver (18.04)

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

    si. Para Ubuntu Xenial Xerus (16.04)

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

    sudo apt update
    sudo apt install cmake
    
Himel
fuente
4

También puede ejecutar lo siguiente:

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

Este guión

  • las recuperaciones hacen 3.0.2 ** si ya se descargó en esta sesión, entonces puede volver a usarlo si no terminó la instalación
  • luego copia hace un enlace a la papelera cmake.
test30
fuente
3

Para un contenedor Docker, mejor ejecución

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

Ajuste la versión, si es necesario.

sebastian
fuente
2

Eliminar la versión anterior usando:

apt-get purge cmake

Descargue la versión binaria de cmakearchivado en un tarball. Puede usar una nueva versión cmakeagregando su binruta de directorio a $PATH. Una solución alternativa es extraer el tar.gzpaquete e ir al directorio creado después de extraer y ejecutar los siguientes comandos:

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

¡El segundo método es el mismo que el proceso de instalación que .debhace el paquete!

Sub
fuente
1

Instale la última versión de cmake desde backports, donde residen muchas versiones más recientes. Los backports particulares dependen de su versión actual del sistema operativo. Por ejemplo, ejecutando Debian Stretch, agregue lo siguiente a /etc/apt/sources.list

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

Luego instale desde este puerto, también conocido como:

sudo apt-get -t stretch-backports install -y cmake
jeffmcneill
fuente
0

Puede encontrar versiones muy recientes de cmake a través de snap. Por ejemplo, al escribir esta respuesta, la última versión de cmake es 3.15.3, y snap tiene la versión 3.15.2.

sudo apt-get purge cmake
sudo snap install cmake --classic
qwr
fuente
0

La respuesta de qwr para usar Snap puede ser buena, pero si quieres algo aún más nuevo, cmake hace que construir un DEB desde la fuente sea fácil. Lo siguiente asume que ya tiene un cmake reciente instalado. El apt install cmake de Ubuntu 18.04 definitivamente funcionará aquí.

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
mheyman
fuente