linux環境下編譯安裝ICE

前面咱們講過了在linux環境下經過rpm的方式來安裝ICE,這種安裝方式能夠是比較簡單的,本身在安裝過程當中發現後面PHP沒法裝在IcePHP.sp模塊,也有可能本身在安裝過程當中某個地方出錯了。又嘗試經過直接編譯的方式去安裝ICE,PHP也正常裝在了IcePHP.so模塊,大功告成,這裏記錄一下方法。 php

以安裝ICE-3.4.2版本爲例,爲了方便管理,將ICE相關的軟件都安裝到/usr/local/ICE-3.4.2/目錄下。 html

1、安裝第三方包:ThirdParty-Sources-3.4.2 node

一、解壓安裝包 linux

# tar zxvf ThirdParty-Sources-3.4.2.tar.gz
# cd ThirdParty-Sources-3.4.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

三、安裝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
四、安裝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
五、安裝expat

expat 是一個 XML parsing C library。 vim

# 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
六、安裝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
2、安裝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完畢。

三、編譯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
四、設置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
相關文章
相關標籤/搜索