cmake_install - yuhannah/skills_map GitHub Wiki

ubuntu 下高版本 CMake 安装及软链接设置

本文介绍 ubuntu 16.04 系统下最新及其他版本 CMake 的安装和软链接覆盖旧版本。

CMake 介绍

在 CMake 官网下找到Download页面,包含最新版本和旧版本的链接。一般开放源代码软件都会有两个版本发布:Source Distribution 和 Binary Distribution。前者是源代码版,需要自己编译成可执行软件。后者是已经编译好的可执行版,解压后就能直接使用。

查询主机 32 位或 64 位

在终端中输入:

getconf LONG_BIT
# 64

如果结果是 64 表示该系统是 64 位的,如果结果是 32 则表示系统是 32 位的。

查询当前 CMake 版本

在 ubuntu 系统上安装 CMake,版本一般会低于最新版本:

cmake --version
# cmake version 3.5.0
# 
# CMake suite maintained and supported by Kitware (kitware.com/cmake).

ubuntu 16.04 系统默认安装的 CMake 版本为 3.5,但有时编译一些包时需要更高的版本,所以需要升级一下 cmake。

安装/升级 CMake

重要!!若用 CMake 编译过 ROS ,千万别傻乎乎地随便找个帖子执行下面的命令:

sudo apt-get autoremove cmake

这样会把之前用 CMake 编译好的包都给卸载掉。

下面介绍两种方法安装/升级 CMake。

源码安装

官网下载最新版的 CMake 源码压缩包,当前最新版本为 3.18.2。将 CMake 安装到 /opt 目录下。(没试过,是否会覆盖旧版本?)

# 将压缩包复制到 /opt 目录下,注意 sudo 权限
sudo cp ~/路径/cmake-3.18.2.tar.gz /opt
# 解压源码包,注意 sudo 权限
sudo tar -zxvf cmake-3.18.2.tar.gz
# 进入解压目录下,进行安装
cd cmake-3.14.5
sudo ./bootstrap 
sudo make
sudo make install

CMake 会默认安装在 /usr/local/bin 下面。

查询版本:

cmake --version
# cmake version 3.18.2

binary 安装/升级

  • 方法一:不卸载旧版本的基础上创建软链接升级 CMake

    将下载的安装包放到 /opt 路径下,并且解压:

    # 将压缩包复制到 /opt 目录下,注意 sudo 权限
    sudo cp ~/路径/cmake-3.18.2-Linux-x86_64.tar.gz /opt
    # 解压源码包,注意 sudo 权限
    sudo tar -zxvf cmake-3.18.2-Linux-x86_64.tar.gz
    # 修改目录名称(可选)
    sudo mv cmake-3.18.2-Linux-x86_64 cmake-3.18.2
    # 查看解压后的目录结构(需要安装tree)
    cd cmake-3.18.2
    tree -L 2
    

    重要!!接下来通过直接建立软链接覆盖掉系统的CMake:

    # 创建软链接
    sudo ln -sf /opt/cmake-3.18.2/bin/*  /usr/bin/
    # 查看 cmake 版本
    cmake --version
    # cmake version 3.18.2
    
  • 方法二(没试过)

    把下载好的压缩包复制到指定路径(比如 /home/user)并解压:

    tar -zxvf cmake-3.18.2-Linux-x86_64.tar.gz  
    

    在 /home/user 下打开新的终端,输入:

    # 系统自带 bashrc 文件,在用户目录下
    vim .bashrc
    

    此时会打开一个文件,找到export PATH=这些行,在这些行的下面另外添加一行,从而设置环境变量:

    export PATH=$PATH:/home/user/cmake-3.18.2-Linux-x8664/bin
    

    查看版本:

    cmake --version
    # cmake version 3.18.2
    

    PS:在根目录下安装 CMake,那么不同用户都可以共享使用这个 CMake。如果是安装其它软件如 openCV/caffe 等,需要设置环境变量路径。如果路径是根目录,那么不同用户都能使用这些库,但如果环境变量路径只在一个用户路径下,那么只有这个用户能用这些库。

删除高版本 CMake 的软链接

参考Linux 下创建、删除软链接

未尝试删除软链接操作。