linux环境下编译安装ICE

前面我们讲过了在linux环境下通过rpm的方式来安装ICE,这种安装方式可以是比较简单的,自己在安装过程中发现后面PHP无法装在IcePHP.sp模块,也有可能自己在安装过程中某个地方出错了。又尝试通过直接编译的方式去安装ICE,PHP也正常装在了IcePHP.so模块,大功告成,这里记录一下方法。

以安装ICE-3.4.2版本为例,为了方便管理,将ICE相关的软件都安装到/usr/local/ICE-3.4.2/目录下。

一、安装第三方包:ThirdParty-Sources-3.4.2

1、解压安装包

# tar zxvf ThirdParty-Sources-3.4.2.tar.gz
# cd ThirdParty-Sources-3.4.2
2、安装mcpp

# tar zxvf mcpp-2.7.2.tar.gz
# cd mcpp-2.7.2
# ./configure --prefix=/usr/local/ICE-3.4.2/mcpp-2.7.2/ CFLAGS=-fPIC -enable-mcpplib -disable-shared
# make
# make install

3、安装Berkeley DB

Berkeley DB 是一个高性能的,嵌入数据库编程库,和C语言, C++, Java, Perl, Python, Tcl以及其他很多语言都有绑定。

# cd ..
# tar zxvf db-4.8.30.NC.tar.gz
# cd db-4.8.30.NC/build_unix/
# ../dist/configure --prefix=/usr/local/ICE-3.4.2/BerkeleyDB.4.6/ -enable-cxx
# make
# make install
4、安装bzip2

bzip2 是 Julian Seward 开发并按照自由软件/开源软件协议发布的数据压缩算法及程序。

# cd../../
# tar zxvf bzip2-1.0.6.tar.gz
# cd bzip2-1.0.6
修改Makefile,将PREFIX指向/usr/local/ICE-3.4.2/bzip2-1.0.6
# make
# make install
5、安装expat

expat 是一个 XML parsing C library。

# cd ..
# tar zxvf expat-2.0.1.tar.gz
# cd expat-2.0.1
# ./configure --prefix=/usr/local/ICE-3.4.2/expat-2.0.1/
# make
# make install
6、安装openssl

openssl 是 Secure Socket Layer (SSL) binary and related cryptographic tools。

# cd ..
# tar zxvf openssl-0.9.8r.tar.gz
# cd openssl-0.9.8r
# ./config --prefix=/usr/local/ICE-3.4.2/openssl
# make
# make install
二、安装ICE-3.4.2
# tar zxvf Ice-3.4.2.tar.gz
# cd Ice-3.4.2/cpp
# vi config/Make.rules
修改安装包路径:
prefix ?= /usr/local/ICE-3.4.2/Ice-$(VERSION)

embedded_runpath_prefix ?= /usr/local/ICE-3.4.2/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)

BZIP2_HOME ?= /usr/local/ICE-3.4.2/bzip2-1.0.6

DB_HOME ?= /usr/local/ICE-3.4.2/BerkeleyDB.4.6

EXPAT_HOME ?= /usr/local/ICE-3.4.2/expat-2.0.1

OPENSSL_HOME ?= /usr/local/ICE-3.4.2/openssl

MCPP_HOME ?= /usr/local/ICE-3.4.2/mcpp-2.7.2
# make
编译过程报错:
../../lib/libIce.so: undefined reference to `libiconv'
../../lib/libIce.so: undefined reference to `libiconv_close'
../../lib/libIce.so: undefined reference to `libiconv_open'
collect2: ld 返回 1
make[2]: *** [../../bin/transformdb] 错误 1
make[2]: Leaving directory `/data/software/Ice-3.4.2/cpp/src/FreezeScript'
make[1]: *** [all] 错误 1
make[1]: Leaving directory `/data/software/Ice-3.4.2/cpp/src'
make: *** [all] 错误 1
# make install
安装过程报错:
../../lib/libIce.so: undefined reference to `libiconv'
../../lib/libIce.so: undefined reference to `libiconv_close'
../../lib/libIce.so: undefined reference to `libiconv_open'
collect2: ld 返回 1
make[2]: *** [../../bin/transformdb] 错误 1
make[2]: Leaving directory `/data/software/Ice-3.4.2/cpp/src/FreezeScript'
make[1]: *** [install] 错误 1
make[1]: Leaving directory `/data/software/Ice-3.4.2/cpp/src'
make: *** [install] 错误 1

修改

vim config/Make.rules.Linux
找到143行这里
BASELIBS = -lIceUtil -lpthread -lrt -liconv

在最后面增加-liconv, 执行make和make instll命令等待编译完成.

至此,安装ICE完毕。

3、编译PHP版本

# cd ..
# cd php/
# vim config/Make.rules.php
指定安装包路径:
prefix ?= /usr/local/ICE-3.4.2/Ice-$(VERSION)

embedded_runpath_prefix ?= /usr/local/ICE-3.4.2/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)

#指定PHP安装路径
PHP_HOME ?= /usr/local/php
安装编译
# make
# make install
4、设置ICE环境变量
# vi /etc/profile


export PHPPATH=/usr/local/ICE-3.4.2/Ice-3.4.2/php/:
export ICE_HOME=/usr/local/ICE-3.4.2/Ice-3.4.2
export PATH=$PATH:$ICE_HOME/bin
export LD_LIBRARY_PATH=$ICE_HOME/lib
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC ICE_HOME
使之生效



source /etc/profile
测试是否成功:



icegridnode --version
icegridadmin --version



声明: 本文采用  BY-NC-SA 协议进行授权. 转载请注明转自:  linux环境下编译安装ICE

转载于:https://my.oschina.net/sumiaowen/blog/161071

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值