1. 说明
本文是我在linux下安装OpenDiameter的全过程, 安装的是opendiameter- 1.0.7 -a版。
2. 前期准备
2.1 需要的lib库
Lib | Ver |
3.2.2 | |
2.5.0 | |
5.4 | |
1.30 | |
0. 9.7a -2 | |
2.59 | |
1.85 |
其中g++, openssl, Autoconf, Automake在linux中自带,如果没有请在安装包里找到他们的rpm进行安装,其余的可以在附件中获得。
3. 安装步骤
现在先假定所有的操作都在/home/vimp/下进行
3.1 解压
把上述所有资源解压到/home/vimp/下
$tar -xzvf xxx.tar.gz
3.2 设置环境变量
$ vi .bash_profile
#set ACE directory
ACE_ROOT=/home/vimp/ACE_wrappers;export ACE_ROOT
#set xerces directory
XERCESCROOT=/home/vimp/xerces-c-src_2_5_0;export XERCESCROOT
#set Boost directory,Boost下载已编译好的就可以,只要设置环境变量。
BOOST_ROOT=/home/vimp/boost_1_33_1;export BOOST_ROOT
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:$XERCESCROOT/lib:/home/vimp/opendiameter- 1.0.7 -a:/lib:/usr/lib:/usr/local/lib:$BOOST_ROOT/libs;export LD_LIBRARY_PATH
PATH=$PATH:$XERCESCROOT/bin:$ACE_ROOT/ace:$ACE_ROOT/lib:$ACE_ROOT/bin:/usr/vacpp/bin;export PATH
3.3 编译Xerces C++ XML Parser
说明:我下载已经编译好的Xerces C++ XML Parser的lib库,但编译opendiameter时通不过,一直有错误,所以还是下载2.50版本的源代码,自己编译。最后用make和gmake都可以。
$ cd $XERCESCROOT/src/xercesc/
$ ./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread
$ gmake
3.4 编译autoconf/automake
说明:这段是网上摘下来的,一般装的系统下都有这两个软件,如果遇到没有的系统,可以参考下面。
# cd /root/autoconf-2.59
# ./configure --prefix=/usr
# make
# make install
# cd /root/automake-
1.8.5
# ./configure --prefix=/usr
# make
# make install
3.5 编译ACE
1.修改文件
进入$ACE_ROOT/ace/下,修改config.h
$vi config.h
#include "ace/config_linux.h"
保存退出
进入$ACE_ROOT/include/makeinclude/下,建立platform_macros.GNU
$vi platform_macros.GNU
include $ACE_ROOT/include/makeinclude/platform_linux.GNU
保存退出
2. 编译
进入$ACE_ROOT/ace下make。等待一会,编译完后,进入lib下,看是不是有.so文件了,成功!
说明:opendiameter要用到libACESSL这个库,所以要到$ACE_ROOT/ace/SSL/下make一下,产生libACE_SSL.so,libACE_SSL.so. 5.4.0 这两个库文件。另外我用5.5版的编译生成库文件后,编译opendiameter也后有错误,所以按要求用的5.4版本的。
3.6 编译OpenDiameter
确定系统是不是已经安装了openssl和kerberos,一般这两个在装linux的时候都是自带的,如果没有请在linux的安装包里找到他们的rpm包进行安装。我装的时候系统都装了,这里没遇到什么问题。
# ln -s /usr/kerberos/include/com_err.h /usr/include/
# ln -s /usr/kerberos/include/profile.h /usr/include/
# ln -s /usr/kerberos/include/krb5.h /usr/include/
# cd /home/vimp/opendiameter-
1.0.7
-a
# ./configure
# make