|
@@ -0,0 +1,67 @@
|
|
|
+## Motivatation
|
|
|
+
|
|
|
+- modern CMake is required for building a lot of new software
|
|
|
+- CMake is dependency for many packages (e.g. ROS related)
|
|
|
+- we don't want to remove CMake (which would remove packages that depend on it)
|
|
|
+- we want safe procedure to update CMake that can be reversed easily
|
|
|
+
|
|
|
+## Current version in OS
|
|
|
+
|
|
|
+Check current version
|
|
|
+
|
|
|
+```bash
|
|
|
+apt-cache policy cmake
|
|
|
+```
|
|
|
+
|
|
|
+## Build CMake 3.20
|
|
|
+
|
|
|
+```bash
|
|
|
+# get and build CMake
|
|
|
+wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0.tar.gz
|
|
|
+tar -zvxf cmake-3.20.0.tar.gz
|
|
|
+cd cmake-3.20.0
|
|
|
+./bootstrap
|
|
|
+make -j8
|
|
|
+```
|
|
|
+
|
|
|
+## Install as package
|
|
|
+
|
|
|
+So that we can easily remove it later
|
|
|
+
|
|
|
+```bash
|
|
|
+sudo apt-get install checkinstall
|
|
|
+# this will take more time than you expect
|
|
|
+sudo checkinstall --pkgname=cmake --pkgversion="3.20-custom" --default
|
|
|
+# reset shell cache for tools paths
|
|
|
+hash -r
|
|
|
+```
|
|
|
+
|
|
|
+## Verify installation
|
|
|
+
|
|
|
+```bash
|
|
|
+apt-cache policy cmake
|
|
|
+```
|
|
|
+
|
|
|
+```bash
|
|
|
+cmake --version
|
|
|
+```
|
|
|
+
|
|
|
+```bash
|
|
|
+which cmake
|
|
|
+```
|
|
|
+
|
|
|
+## Uninstall
|
|
|
+
|
|
|
+This step *only* if you want to revert back
|
|
|
+
|
|
|
+- we don't want to remove cmake
|
|
|
+- this could cause removal of packages that depend on it (e.g. ROS)
|
|
|
+- instead we switch back to previous version
|
|
|
+
|
|
|
+```bash
|
|
|
+# idenitfy version of interest
|
|
|
+apt-cache policy cmake
|
|
|
+# switch to different version (from policy above)
|
|
|
+apt-get install cmake=VERSION
|
|
|
+```
|
|
|
+
|