Pregunta:
Estoy tratando de instalar el último cmake
en mi caja de Linux y siempre cmake
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 caja de 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
Respuesta:
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 sudo apt install cmake
el comando sudo apt install cmake
la versión instalada era 3.5.1 ; en lugar de 3.22.1, que es la versión actual en cmake.org .
Teo, ¿cómo puedo obtener la última versión?
Bueno, podemos instalarlo siguiendo uno de estos métodos:
- Uso de repositorios APT
- Construir e instalar desde la fuente
- Usando archivos binarios
A. Uso de repositorios APT (recomendado para usuarios normales)
Kitware ahora proporciona un repositorio APT que es compatible con Ubuntu 16.04, 18.04 y 20.04. Para que podamos instalarlo fácilmente siguiendo estos pasos:
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. Prepárese para la instalación
sudo apt update && \
sudo apt install -y software-properties-common lsb-release && \
sudo apt clean all
A-3. Obtenga una copia de la clave de firma del kit.
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
A-4. Agregue el repositorio de kitware a su lista de fuentes para Ubuntu Focal Fossa (20.04), Ubuntu Bionic Beaver (18.04) y Ubuntu Xenial Xerus (16.04).
sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main"
A-5. Como paso opcional, se recomienda que también kitware-archive-keyring
el kitware-archive-keyring
para asegurarnos de que el llavero de Kitware se mantenga actualizado mientras rotan sus claves.
sudo apt update
sudo apt install kitware-archive-keyring
sudo rm /etc/apt/trusted.gpg.d/kitware.gpg
A-6. Finalmente podemos actualizar e instalar el paquete cmake
.
sudo apt update
sudo apt install cmake
B. Construcción e instalación (recomendado para desarrolladores)
Para este enfoque, debe instalar las herramientas GCC:
sudo apt update
sudo apt install build-essential libtool autoconf unzip wget
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 y extraiga la última versión. Actualice la version
y build
variables en el siguiente comando para obtener la versión deseada:
version=3.22
build=1
## don't modify from here
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/
B-3. Instale la fuente extraída ejecutando:
./bootstrap
make -j$(nproc)
sudo make install
B-4. Pruebe su nueva versión de cmake
.
$ cmake --version
Resultados de cmake --version
:
cmake version 3.22.X
CMake suite maintained and supported by Kitware (kitware.com/cmake).
C. Usar archivos binarios (es posible que cmake-gui
no funcione bien)
C-1. Desinstale la versión predeterminada proporcionada por el administrador de paquetes de Ubuntu como en A-1 .
C-2. Vaya a la página web oficial de CMake , luego descargue e instale la última versión .sh
en opt/cmake
. Actualice la version
y build
variables en el siguiente comando para obtener la versión deseada:
version=3.22
build=1
## don't modify from here
limit=3.20
result=$(echo "$version >= $limit" | bc -l)
os=$([ "$result" == 1 ] && echo "linux" || echo "Linux")
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build-$os-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-$version.$build-$os-x86_64.sh --prefix=/opt/cmake
C-3. Agregue el enlace binario instalado a /usr/local/bin/cmake
ejecutando esto:
sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
C-4. Pruebe su nueva versión de cmake
como en B-4 .
Nota
En 3.22.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.22.1 . Si desea la versión anterior 3.21.4, simplemente reemplace la versión y compile parámetros como este:
version=3.21
build=4
## don't modify from here
limit=3.20
result=$(echo "$version >= $limit" | bc -l)
os=$([ "$result" == 1 ] && echo "linux" || echo "Linux")
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build-$os-x86_64.sh
sudo mkdir /opt/cmake
sudo sh cmake-$version.$build-$os-x86_64.sh --prefix=/opt/cmake
Observación
Para versiones anteriores de CMake (3.19.7 <=), recuerde que el nombre del archivo contiene una L
mayúscula en -Linux-x86_64.sh
y desde la versión 3.20 tiene una l
minúscula en -linux-x86_64.sh