去Index of /files下载所需版本的源码。也可以使用wget下载,例如:
wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz
解压:
tar -xvzf cmake-3.22.1.tar.gz
进入解压目录,配置:
chmod +x ./configure
./configure
但是这时报错,Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.
解决办法:sudo apt-get install libssl-dev
rm -f CMakeCache.txt
./configure
配置成功之后显示:CMake has bootstrapped. Now run make.
配置完成后,编译:make
编译完成后,安装:
sudo make install
最后使用新安装的cmake替换旧版本,其中/usr/local/bin/cmake
为新安装的cmake目录。
sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
备注:可以看到/usr/bin
目录下的cmake成为了一个软链接,指向了/etc/alternatives/cmake
,而后者由指向了/usr/local/bin/cmake
,也就是我们安装的版本。其实就是通过软链接的方式将原始的程序“替换”了。
最后测试cmake版本:
cmake --version
# cmake version 3.22.1
# CMake suite maintained and supported by Kitware (kitware.com/cmake).