經過了九九八十一難,終於把ICE安裝上了,過程就不都寫出來了,總之前途是光明的,道路是曲折的。這裏給大家總結一下,希望大家不要像我一樣碰到這麼多的坑。
首先先說一下準備環境,由於編譯 ICE的源代碼需要用到很多語言的開發包, 所以需要在編譯ICE源代碼之前,需要先安裝相應的開發環境,包括 java, gradle, nodejs, ruby, python, php, 具體如何搭建各開發環境請百度。本人只在此介紹一下自己的情況。
由於本人之前搭過 ruby 開發環境, java 開發環境 和 nodejs 開發環境。所以相應的 ruby, java, npm等都已經存在,所以在安裝中沒有報出與這些相關的錯誤。
但是對於 python, php 和 基於jvm的構建工具 gradle,則都分別爆出了相應的錯誤,因此需要提前單獨安裝。
sudo apt-get install python-dev php-dev gradle
下面介紹從源代碼編譯安裝ICE3.6.3的步驟。
1. 下載ICE3.6.3源代碼, 並將其解壓
wget https://github.com/zeroc-ice/ice/archive/v3.6.3.tar.gz
tar zxf v3.6.3.tar.gz
2. 安裝 第三方依賴包, 包括 bzip2, ssl, expat1, berkeley db, mcpp
2.1 安裝 bzip2, ssl, expat1 等第三方庫
sudo apt-get install libbz2-dev libssl-dev libexpat1-dev
2.2 安裝 berkeley db
wget https://zeroc.com/download/berkeley-db/db-5.3.28.NC.tar.gz
tar xzf db-5.3.28.NC.tar.gz
wget https://zeroc.com/download/berkeley-db/berkeley-db.5.3.28.patch
cd db-5.3.28.NC
patch -p0 < ../berkeley-db.5.3.28.patch
cd build_unix
../dist/configure --enable-cxx --enable-java --prefix=/usr
make
sudo make install
2.3 安裝 mcpp
git clone https://github.com/zeroc-ice/mcpp.git
cd mcpp
make
sudo make install
mcpp 的lib 應該會被copy到 /opt/mcpp-2.7.2/, 這個路徑下一步會用到。
3. 編譯 ice-3.6.3
3.1 修改 ice-3.6.3中的 cpp/config/Make.rules
加入下面這一行 標明 mcpp的安裝路徑。
MCPP_HOME ?= /opt/mcpp-2.7.2/
3.2 修改 java/gradle.properties
加入 java home的設置
org.gradle.java.home=/home/icebergwu/jdk/jdk1.7.0_71
3.3 使用 make 命令編譯
make
4. 安裝ICE
sudo make install
5. 添加環境變量並加載
export ICE_HOME=/opt/Ice-3.6.3
export PATH=$ICE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ICE_HOME/lib:$LD_LIBRARY_PATH
6. 驗證安裝是否成功
slice2java -v
如果能得到版本號 3.6.3 則表示安裝成功。
參考的鏈接:
https://doc.zeroc.com/display/Ice36/Building+Berkeley+DB+and+mcpp+on+Linux
http://www.linuxdiyf.com/linux/16158.html