因为ICE的最新版本只没有直接提供deb包,如果在ubuntu上面安装ubuntu的最新版本,那只能是自己编译,其实自己编译安装的东西很放心,并且配置也相当的方便,一般的东西可以用deb包安装,像mysql,php ,apache这样的软件最后不要用apt-get这种方式来安装,因为如果官方有更新,在等到变成deb包的时间是比较久的。
首先在ice的官网下载源码包,因为是ubuntu,下载Source Distributions下面的Ice3.4.1这一个源码包就可以了。
仔细看下面有这么一段话
“The complete Ice source code for all language mappings. If you are interested in building Ice for a language other than C++, you must first compile Ice for C++ or, alternatively, download and install an appropriate binary distribution. This is necessary because the Slice compilers and scripting language extensions are written in C++.”
说的很明白,如果你想要去编译Ice为别的语言作应射,那就得先编译C++的语言应射,因为Ice 的clice 编译器是用c++写成的,所以得先编译c++
(一)Ice依赖软件包
(1)gcc 3.3以上。
(2)Berkeley DB 4.8以上
(3)expat 2.0.1
(4)bzip2 1.0.x
(5)mcpp 2.7.2
(二)安装依赖包
(1)安装编译所需软件包 用 apt-get install bulid-essential
(2)安装ice所需依赖包 apt-get install libdb4.6++-dev libbz2-dev bzip2 libssl-dev libreadline5-dev libexpat1-dev mcppI
(3)添加链接 ln -s /usr/lib/libmcpp.so.0.2.0 /usr/lib/libmcpp.so 如果不这样处理,会出现如下错误 cannot find -lmcpp
(三)进去Ice 下面的cpp目录,运行 make 然后 make install ,编译完成。
(四)添加环境变量
Ice默认安装在/opt/下面,如/opt/Ice3.4.1/
在 ~/
.bashrc里面添加环境变量和类库为题
export ICE_HOME=/opt/Ice-3.4.1
export PATH=$ICE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ICE_HOME/lib:$LD_LIBRARY_PATH
就会新添如下命令
slice2cpp slice2freeze slice2html slice2php slice2rb
slice2cs slice2freezej slice2java slice2py
安装ice对php语言的支持
(1)进入源码 Ice-3.4.1/php
(2)vim config/Make.rules.php
(3)把PHP_HOME改成你的php所在目录,如PHP_HOME=/usr/local/lamp/php5 这是我的php主安装目录,在make 和make install
(4)在phpinfo里面找到php的extension_dir 目录,如果此目录存在,就在cp /opt/Ice-3.4.1/php/Ice_PHP.so到你的extension目录,如
cp /opt/Ice-3.4.3/Ice_PHP.so /usr/local/lamp/php5/lib/php/extensions/no-debug-non-zts-20090626
如果不能找到php extension_dir,也可以用命令查找
php -i | grep extension
extension_dir => /usr/local/lamp/php5/lib/php/extensions/no-debug-non-zts-20090626 => /usr/local/lamp/php5/lib/php/extensions/no-debug-non-zts-20090626
/usr/local/lamp/php5/lib/php/extensions/no-debug-non-zts-20090626 就是php的扩展目录,如果此目录不存在就运行
mkdir /usr/local/lamp/php5/lib/php/extensions/no-debug-non-zts-20090626
(5)在php.ini中添加如下语句 extension=Ice_PHP.so
(6)重启apache
在phpinfo中将可以看到ICE_SUPPORT ENABLE选项