CentOS7升级cmake

Linux知识
0 830

CentOS7升级cmake

在编译Hadoop3.0的时候,在cmake编译阶段失败,错误如下:

[WARNING] CMake Error at CMakeLists.txt:23 (cmake_minimum_required):
[WARNING]   CMake 3.1 or higher is required.  You are running version 2.8.12.2

很明显,这是cmake版本过低导致的,那么就需要升级cmake到Hadoop要求版本以及更高版本了。

本文主要介绍如何升级CentOS7的cmake版本。

注:我使用的Hadoop编译环境是一个基于CentOS7的docker容器,所以以下升级cmake的步骤会涉及到docker的一些操作,除此以外,升级步骤和普通操作系统无异。
升级cmake进入docker容器
提醒:非docker环境可跳过此步骤

我使用的升级docker image的方式是直接进入容器内部,做完相应的修改后,再退出容器,然后 commit 修改到原有image。当然还可以使用 Dockerfile 升级docker image,在此就不再赘述。详情将在docker系列文章说明。

以交互式的方式进入docker容器:

docker run -it xwd/hadoop:centos-7-hadoop bash

执行命令之后,就会进入以 xwd/hadoop:centos-7-hadoop 这个 image 为基础的容器的终端了,其操作和普通操作系统终端大致一样。

下载cmake二进制包

这里,我们使用cmake-3.10.2-Linux-x86_64版本为例。

进入docker容器终端或者普通操作系统终端,下载cmake安装包:

cd /opt
wget https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz
升级cmake

如果原有cmake环境就是使用cmake的二进制包制作的,那么直接修改环境变量文件即可。如果不熟悉这种方法的同学,可以在下文看到相关操作。

如果原有环境是使用yum等工具安装,那么,我们先卸载已有的cmake,如果原有cmake环境也是使用的:

yum remove cmake
这时,你可以发现系统中已经没有cmake命令了,如果还有,可能你的环境cmake相关文件做过一些修改,请仔细排查。

解压下载好的cmake二进制包:

cd /opt
tar zxvf cmake-3.10.2-Linux-x86_64.tar.gz

解压成功后,就可以在 /opt 目录下看到一个 cmake-3.10.2-Linux-x86_64 目录,下面添加cmake环境变量,编辑 /etc/profile.d/cmake.sh 文件,写入以下内容:

export CMAKE_HOME=/opt/cmake-3.10.2-Linux-x86_64
export PATH=$PATH:$CMAKE_HOME/bin

保存并退出,执行命令让cmake环境文件生效:

source /etc/profile

此时,你再次查看cmake版本,就已经是3.10.2了:

cmake -version

OK,cmake环境版本升级完毕。

更新docker image
提醒:非docker环境可跳过此步骤

在docker容器内更新完cmake版本之后,执行 exit 命令退出容器,然后提交更新:

docker commit -m "update cmake to 3.10.2" 371401fce751 xwd/hadoop:centos-7-hadoop
上述命令具体参数解释,在我的docker系列文章中会讲解

命令成功之后,终端就会出现类似以下的信息:

sha256:cb4a004b41af0a691cb2d78489fb11047081cb85e02c151093ad84198fa5c19d
总结

其实在Linux系统中,我习惯使用工具的二进制包制作环境,这种方式不仅绿色而且简单,非常推荐使用。最后希望志同道合的同学们多多交流学习经验。



作者:江无常


链接:https://www.jianshu.com/p/b283fad5e4de


来源:简书