背景
在編譯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版本過低導(dǎo)致的,那么就需要升級cmake到Hadoop要求版本以及更高版本了。
本文主要介紹如何升級CentOS7的cmake版本。
注:我使用的Hadoop編譯環(huán)境是一個基于CentOS7的docker容器,所以以下升級cmake的步驟會涉及到docker的一些操作,除此以外,升級步驟和普通操作系統(tǒng)無異。
升級cmake
進(jìn)入docker容器
提醒:非docker環(huán)境可跳過此步驟
我使用的升級docker image的方式是直接進(jìn)入容器內(nèi)部,做完相應(yīng)的修改后,再退出容器,然后 commit 修改到原有image。當(dāng)然還可以使用 Dockerfile 升級docker image,在此就不再贅述。詳情將在docker系列文章說明。
以交互式的方式進(jìn)入docker容器:
docker run -it xwd/hadoop:centos-7-hadoop bash
執(zhí)行命令之后,就會進(jìn)入以 xwd/hadoop:centos-7-hadoop 這個 image 為基礎(chǔ)的容器的終端了,其操作和普通操作系統(tǒng)終端大致一樣。
下載cmake二進(jìn)制包
這里,我們使用cmake-3.10.2-Linux-x86_64版本為例。
進(jìn)入docker容器終端或者普通操作系統(tǒng)終端,下載cmake安裝包:
cd /opt
wget https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz
升級cmake
如果原有cmake環(huán)境就是使用cmake的二進(jìn)制包制作的,那么直接修改環(huán)境變量文件即可。如果不熟悉這種方法的同學(xué),可以在下文看到相關(guān)操作。
如果原有環(huán)境是使用yum等工具安裝,那么,我們先卸載已有的cmake,如果原有cmake環(huán)境也是使用的:
yum remove cmake
這時,你可以發(fā)現(xiàn)系統(tǒng)中已經(jīng)沒有cmake命令了,如果還有,可能你的環(huán)境cmake相關(guān)文件做過一些修改,請仔細(xì)排查。
解壓下載好的cmake二進(jìn)制包:
cd /opt
tar zxvf cmake-3.10.2-Linux-x86_64.tar.gz
解壓成功后,就可以在 /opt 目錄下看到一個 cmake-3.10.2-Linux-x86_64 目錄,下面添加cmake環(huán)境變量,編輯 /etc/profile.d/cmake.sh 文件,寫入以下內(nèi)容:
export CMAKE_HOME=/opt/cmake-3.10.2-Linux-x86_64
export PATH=$PATH:$CMAKE_HOME/bin
保存并退出,執(zhí)行命令讓cmake環(huán)境文件生效:
source /etc/profile
此時,你再次查看cmake版本,就已經(jīng)是3.10.2了:
cmake -version
OK,cmake環(huán)境版本升級完畢。
更新docker image
提醒:非docker環(huán)境可跳過此步驟
在docker容器內(nèi)更新完cmake版本之后,執(zhí)行 exit 命令退出容器,然后提交更新:
docker commit -m "update cmake to 3.10.2" 371401fce751 xwd/hadoop:centos-7-hadoop
上述命令具體參數(shù)解釋,在我的docker系列文章中會講解
命令成功之后,終端就會出現(xiàn)類似以下的信息:
sha256:cb4a004b41af0a691cb2d78489fb11047081cb85e02c151093ad84198fa5c19d
總結(jié)
其實在Linux系統(tǒng)中,我習(xí)慣使用工具的二進(jìn)制包制作環(huán)境,這種方式不僅綠色而且簡單,非常推薦使用。最后希望志同道合的同學(xué)們多多交流學(xué)習(xí)經(jīng)驗。
轉(zhuǎn)載請注明出處......