[[PageOutline]]
{{{
#!html
2.1 從 Sourece 安裝
}}}
----
== ''__2.1.1 相關套件安裝__'' ==
{{{
### 安裝 sun Java ###
$ aptitude install sun-java6-jdk
$ update-alternatives --config java
### 安裝 ant ###
$ aptitude install ant
### 安裝 vlan, dhcp, openssl ###
$ aptitude install vlan dhcp3-server libcurl4-openssl-dev
### EC2 tools ###
$ wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip
$ wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip
$ unzip ec2-ami-tools-1.3-26357.zip
$ unzip ec2-api-tools-1.3-30349.zip
}}}
{{{
#!sh
### 設定環境變數 ###
$ vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export ANT_HOME=/usr/share/ant
export EC2_HOME=/root/ec2-api-tools-1.3-30349
export EC2_AMITOOL_HOME=/root/ec2-ami-tools-1.3-26357
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin:$EC2_HOME/bin:$EC2_AMITOOL_HOME/bin
$ source ~/.bashrc
}}}
== ''__2.1.2 編譯 Euc__'' ==
* [http://open.eucalyptus.com/downloads 下載 Eucalyptus] -> 下載兩個檔案 (Euceucalyptus-1.5.1-src.tar.gzalyptus source) & eucalyptus-1.5.1-src-deps.tar.gz
{{{
#!sh
### 1.解壓縮 ###
$ su
$ sudo tar zvxf eucalyptus-1.5.1-src.tar.gz -C ~
### 2.設定環境變數 ###
$ echo "export EUCALYPTUS_SRC=/root/eucalyptus-1.5.1" >> /root/.bashrc
$ echo "export EUCALYPTUS=/opt/eucalyptus" >> /root/.bashrc
$ source /root/.bashrc
### 3.安裝 Euc 相依的軟體 ###
$ tar zvxf eucalyptus-1.5.1-src-deps.tar.gz -C $EUCALYPTUS_SRC
$ mkdir -p $EUCALYPTUS/packages/
### 3.1 Axis2 ###
$ cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
$ tar zxvf axis2-1.4.tgz -C $EUCALYPTUS/packages/
$ vim ~/.bashrc
$ source ~/.bashrc
### 3.2 Apache(httpd) ###
$ tar zvxf httpd-2.2.11.tar.gz
$ cd httpd-2.2.11
$ CFLAGS="-DBIG_SECURITY_HOLE" ./configure --prefix=$EUCALYPTUS/packages/httpd-2.2.11 --with-included-apr
$ make && make install
### 3.3 Axis2/C ###
$ cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
$ tar zvxf axis2c-src-1.5.0.tar.gz
$ echo "export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0" >> ~/.bashrc ; . ~/.bashrc
$ cd axis2c-src-1.5.0
$ ./configure --with-apache2=$EUCALYPTUS/packages/httpd-2.2.11/include --prefix=$AXIS2C_HOME
$ make && make install
### 3.4 Rampart/C ###
$ cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
$ echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AXIS2C_HOME/lib" >> ~/.bashrc ; . ~/.bashrc
$ tar zvxf rampartc-src-1.2.0.tar.gz
$ cd rampartc-src-1.2.0
$ ./configure --prefix=$AXIS2C_HOME --enable-static=no --with-axis2=$AXIS2C_HOME/include/axis2-1.5.0
$ make ; make install
$ vim $AXIS2C_HOME/axis2.xml
### 3.5 Libvirt ###
$ aptitude install libxml2-dev libgnutils-dev
$ cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
$ tar zvxf libvirt-0.6.3.tar.gz
$ cd libvirt-0.6.3
$ ./configure --prefix=$EUCALYPTUS/packages/libvirt-0.6.3 --without-storage-disk --without-storage-iscsi --without-storage-fs --without-storage-lvm --without-libvirtd --without-remote --without-lxc --without-kvm --without-qemu --without-sasl --without-openvz
$ make ; make install
}}}
== ''__2.1.3 Build Euc__'' ==
{{{
### Building Eucalyptus ###
$ cd $EUCALYPTUS_SRC
$ ./configure --with-axis2=$EUCALYPTUS/packages/axis2-1.4 --with-axis2c=$EUCALYPTUS/packages/axis2c-1.4 --with-libvirt=$EUCALYPTUS/packages/libvirt-0.6.3/ --prefix=$EUCALYPTUS
$ make ; make install
### Eucalyptus on multiple machines ###
# 設定 Euc 設定檔的位置 #
$ $EUCALYPTUS/usr/sbin/euca_conf -d $EUCALYPTUS $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
# 將 $EUCALYPTUS/ 同步複製到其他 nodes #
$ rsync -a $EUCALYPTUS/ hostname1:$EUCALYPTUS/
$ rsync -a $EUCALYPTUS/ hostname2:$EUCALYPTUS/
$ ...
}}}