Liunxs中CentOS系列一直以安静为对象,但是也会设有版本太旧的标题,emacs就是其中的一个,方今emacs都发行到25.2了,而CentOS上的emacs版本却依旧23.1。所以须要下载源代码举办编译安装。

Liunxs中CentOS种类一贯以祥和为目的,但是也会存在版本太旧的题材,emacs就是内部的一个,方今emacs都发行到25.2了,而CentOS上的emacs版本却如故23.1。所以要求下载源代码进行编译安装。

登录ambari网站,发现须要下载源代码包,自行编译。参照官方的文档举行编译,有无数的坑,只得在百度别的资源参考之,然后将编译进度记录下来。

编译CoreCLRubicon要求Clang 3.5,而CentOS上安装的是Clang 3.4.2(yum
repos中时髦版也是那么些),只可以协调手工编译LLVM的源代码进行设置。

  • 1.下载源代码并解压:
  • 1.下载源代码并解压:

1. 备选编译环境

OS: CentOS 7.3.1611
JDK: 8u112
Maven: 3.2.5
Nodejs: 0.10.44

(注:CentOS的版本是6.6)

0)系统包和部分布局

# yum install rpm-build gcc make gcc-c++ openssl-devel git ant -y

一、安装libstdc++4.7

    sh-4.1$ wget http://mirrors.ustc.edu.cn/gnu/emacs/emacs-25.1.tar.gz 
    sh-4.1$ tar -xvf ~/emacs-25.1.tar.gz 
    sh-4.1$ wget http://mirrors.ustc.edu.cn/gnu/emacs/emacs-25.1.tar.gz 
    sh-4.1$ tar -xvf ~/emacs-25.1.tar.gz 

1)下载并设置JDK-8u112

###注意此URL忽略了认证信息
# wget http://download.oracle.com/otn/java/jdk/8u112-b15/jdk-8u112-linux-x64.rpm
# rpm -ivh jdk-8u112-linux-x64.rpm

(注:若是是CentOS 7.0,不必要这步)

切实下载意况请参见GNU
Emacs。

切切实实下载情形请参见GNU
Emacs。

2)下载并安装maven 3.2.5

wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/
  • 2.设置看重库:
  • CentOS编译安装emacs并配置,2源代码编译。2.装置看重库:

3)下载并安装node-v0.10.44

因为ambari正视Nodejs,所以预先举办设置nodejs。

# wget https://nodejs.org/download/release/v0.10.44/node-v0.10.44-linux-x64.tar.gz
# tar zxvf node-v0.10.44-linux-x64.tar.gz -C /opt/

要是不安装,在configure配置编译选项时会出现上边的失实提醒:

4)配置环境变量

# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_112
export CLASSPATH=.:$JAVA_HOME/lib
export MAVEN_HOME=/opt/apache-maven-3.2.5
export NODE_HOME=/opt/node-v0.10.44-linux-x64
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:$PATH

# source /etc/profile
We detected a missing feature in the standard C++ library that was known to be
missing in libstdc++4.6 and implemented in libstdc++4.7. There are numerous
C++11 problems with 4.6's library, and we don't support GCCs or libstdc++ older
than 4.7.
    sh-4.1$ sudo yum install gcc* glib* gtk* ncurses* libXpm* giflib* libjpeg* libtiff* libpng* -y
    sh-4.1$ sudo yum install gcc* glib* gtk* ncurses* libXpm* giflib* libjpeg* libtiff* libpng* -y

5)配置nodejs

# npm -v
# node -v
#查找node根目录
# npm root -g                                                                              
# cd /opt/node-v0.10.44-linux-x64/lib/node_modules
#更改源
# npm config set registry https://registry.npm.taobao.org           
# npm info underscore
#安装1.7.20版本的brunch
# npm install -g brunch@1.7.20                                                  

二、安装Python 2.7.9

  • 3.编译链接:
  • 3.编译链接:

6)检查python版本,建议2.7以上,至少2.6以上

# python -V

(注:如若是CentOS
7.0,不须求那步)

2. 下载源代码,进行编译

# wget http://mirrors.hust.edu.cn/apache/ambari/ambari-2.4.2/apache-ambari-2.4.2-src.tar.gz
# tar zxvf apache-ambari-2.4.2-src.tar.gz
# cd apache-ambari-2.4.2-src
#  mvn versions:set -DnewVersion=2.4.2.0.0
# pushd ambari-metrics                
#有些文档标注此处要“cd ..”,经验证此处按照官档去做。
# mvn versions:set -DnewVersion=2.4.2.0.0
# popd
# mvn -B clean install package rpm:rpm -DnewVersion=2.4.2.0.0 -DskipTests -Dpython.ver="Python >= 2.6"

澳门金沙国际 1

Paste_Image.png

CentOS 6.6自带的是Python
2.6.6,而编译llvm需求Python 2.7上述。

    sh-4.1$ mkdir emacs_build      ## 防止污染源代码
    sh-4.1$ cd emacs_build/
    sh-4.1$ sudo ../emacs-25.1/configure
    sh-4.1$ sudo make && sudo make install
    sh-4.1$ mkdir emacs_build      ## 防止污染源代码
    sh-4.1$ cd emacs_build/
    sh-4.1$ sudo ../emacs-25.1/configure
    sh-4.1$ sudo make && sudo make install

3. 生成的rpm包

澳门金沙国际 2

Paste_Image.png

Ambari要把ambari-server安装到管理节点上,ambari-agent安装到集群节点上,包的岗位如下:

./ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-2.4.2.0-0.x86_64.rpm
./ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/ambari-agent-2.4.2.0-0.x86_64.rpm

1)安装编译Python必要的包包

  • 4.查看结果:
  • 4.查看结果:

难点解决:

1、若是报错:too many files are opened

# echo fs.inotify.max_user_watches=524288 >> /etc/sysctl.conf && sysctl -p
#将每个进程可以打开的文件数目加大到10000,缺省为1024
# ulimit -u 100000

2、若是中间断掉,提出去掉clean,继续编译。

3、安装Nodejs 6.x.x版本不恐怕编译,提出卸载,安装0.10.44。

4、编译进度中冒出版本不一样等难题,请参见http://blog.csdn.net/royma\_1990/article/details/51749981。

参考资源:

https://github.com/apache/ambari
https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.4.2
http://blog.csdn.net/chengyuqiang/article/details/53788351
http://blog.csdn.net/royma\_1990/article/details/51749981

yum install zlib-devel
yum install bzip2-devel
yum install openssl-devel
yum install ncurses-devel
yum install sqlite-devel

2)下载并解压Python 2.7.9的源代码

    sh-4.1$ emacs --version
    sh-4.1$ emacs --version
cd /opt
wget --no-check-certificate https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
tar xf Python-2.7.9.tar.xz
cd Python-2.7.9

就足以看出如下图所示结果:
澳门金沙国际 3
时于今天,emacs就设置到位了。然后就足以使用emacs的插件和计划了。

就可以看出如下图所示结果:
澳门金沙国际 4
时至今天,emacs就安装完毕了。然后就足以采用emacs的插件和布局了。

3)编译与安装Python 2.7.9

安插详情请参考作者GitHub上的emacs.d

布局详情请参考作者澳门金沙国际,GitHub上的emacs.d

./configure --prefix=/usr/local
make && make altinstall

4)将python命令指向Python 2.7.9

ln -s /usr/local/bin/python2.7 /usr/local/bin/python

三、添加互换分区

借使编译的机械内存比较小,提出添加互换分区。小编立马测试的机械唯有1G内存,在编译进程中出现了“c++:
internal compiler error: Killed (program cc1plus)”错误。

1)成立并激活沟通文件(比如2G): 

dd if=/dev/zero of=/swapfile bs=1k count=2048000
mkswap /swapfile
swapon /swapfile

2)修改 /etc/fstab
文件让交流文件启动时自动加载,添加如下内容: 

/swapfile               swap                    swap    defaults        0 0

四、编译LLVM

1)下载llvm的源代码

http://llvm.org/releases/3.5.0/llvm-3.5.0.src.tar.xz
mv llvm-3.5.0.src llvm

2)下载clang的源代码

cd llvm/tools
wget http://llvm.org/releases/3.5.0/cfe-3.5.0.src.tar.xz
tar xf cfe-3.5.0.src.tar.xz
mv cfe-3.5.0.src clang

3)下载compiler-rt的源代码

cd ../projects
wget http://llvm.org/releases/3.5.0/compiler-rt-3.5.0.src.tar.xz
tar xf compiler-rt-3.5.0.src.tar.xz
mv compiler-rt-3.5.0.src compiler-rt

4)配置编译选项

cd ..
./configure --enable-optimized CC=gcc CXX=g++

5)编译llvm

make -j2

编译成功后的提示:

llvm[0]: ***** Completed Release+Asserts Build

6)安装编译好的llvm

make install

会设置在/usr/local/bing中

7)检查clang的版本

# clang --version
clang version 3.5.0 (tags/RELEASE_350/final)

比方照旧旧版本,必要将/usr/bin/clang指向clang
3.5.0:

ls -s /usr/local/bin/clang /usr/bin/clang

【相关链接】

如何在CentOS上安装libstdc++4.7

在Linux CentOS 6.6上安装Python
2.7.9 

相关文章