Changes between Version 6 and Version 7 of HyperTable/HowToInstall


Ignore:
Timestamp:
Jun 11, 2008, 11:10:30 AM (16 years ago)
Author:
sunny
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HyperTable/HowToInstall

    v6 v7  
    11[[PageOutline]]
    22
    3 = How To Install =
    4 == 【Tutorial from Google】 ==
     3= 如何安裝Hypertable =
     4== 【Google Wiki】 ==
    55 * [http://code.google.com/p/hypertable/wiki/SourceCode Get Source Code]
    66 * [http://code.google.com/p/hypertable/wiki/HowToInstall Build Source Code & Generate Documentation Tree]
    7 == 【Install】 ==
    8  * Source Code Path: ~/git/hypertable
    9  * Build Path: ~/build/hypertable
    10  * Installation Path: ~/hypertable
    11  * Install prerequisite library
    12 {{{
    13 $ apt-get install build-essential (if stdio.h not found)
    14 $ apt-get install zlib1g-dev (if CMake Error: Could NOT find z library)
    15 $ apt-get install libboost.*-dev libboost-doc libboost.*1.34.1 (install Boost version 1.34.1)
    16   NOTE. 用apt-get安裝boost 1.34.1,在執行cmake編譯hypertable時,需要另外定義 -DBoost_INCLUDE_DIR="/usr/include/boost" 
    17 $ apt-get install liblog4cpp4 liblog4cpp4-dev liblog4cpp-doc (install log4cpp)
    18 $ apt-get install expat libexpat1 libexpat1-dev (install expat)
    19 $ apt-get install doxygen doxygen-doc doxygen-gui (install doxygen)
    20 $ apt-get install graphviz graphviz-dev graphviz-doc (install graphviz)
    21 $ apt-get install libgoogle-perftools0 libgoogle-perftools-dev (install tcmalloc)
    22 $ apt-get install libreadline5 libreadline5-dev libreadline5-dbg (install readline library)
    23 $ apt-get install libattr1 libattr1-dev (if #include <attr/xattr.h> not found)
    24 $ apt-get install cmake (install cmake)
    25 }}}
    26  * Configure the build
    27 {{{
    28 sunny@hsihdp:~/build/hypertable$ cmake -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE="Debug" -DBoost_INCLUDE_DIR="/usr/include/boost" ~/git/hypertable
     7== 【安裝】 ==
     8 * 安裝過程運行於Ubuntu作業系統,以下所列說明指令適用於Ubuntu的安裝方式,若使用者要安裝到其他作業平台環境,可以參考下列安裝項目並以通用該平台的安裝指令來取代之,接下來會說明編譯過程中的相關檔案存放位置,以及如何組態並編譯原始程式碼,最後再說明安裝方式及如何執行迴歸測試。
     9 * Hypertable原始程式碼的存放路徑放置於:
     10{{{
     11~/src/hypertable
     12}}}
     13 * 編譯過程中所產生的連結物件檔存放於:
     14{{{
     15~/build/hypertable
     16}}}
     17 * 編譯完成的輸出執行檔存放路徑:
     18{{{
     19~/hypertable
     20}}}
     21
     22=== 【下載原始程式碼】 ===
     23 * 要取得Hypertable原始碼需要先安裝[http://git.or.cz/ git]這套由google所提出的版本控制軟體,安裝指令如下:
     24{{{
     25$ sudo apt-get install git-core
     26}}}
     27 * 然後執行以下指令設定git所通行的使用者資訊,這一份使用者資訊原則上是由git這套版本控制軟體儲存,以及留作記錄程式碼被哪些使用者下載的一份參考來源,其設定使用者資訊方式如下:
     28{{{
     29$ git config --global user.name "<your name>"
     30$ git config --global user.email "<your email>"
     31}}}
     32 * 使用git下載Hypertable原始碼之指令:
     33{{{
     34$ git clone git://scm.hypertable.org/pub/repos/hypertable.git
     35}}}
     36 * 更新已下載之Hypertable原始碼方式:
     37{{{
     38$ cd ~/hypertable
     39$ git pull
     40}}}
     41=== 【如何編譯】 ===
     42 * 在編譯Hypertable之前,需要先把編譯環境準備好,有一些編譯軟體要先安裝就序,以下條列出在Ubuntu環境下,各項編譯軟體的安裝指令:
     43  * 此套件在安裝C語言標準程式庫所需要的編譯環境,如果沒有安裝build-essential套件時可能會出現編譯階段找不到stdio.h這個引入檔案的位置,因此建議要先確認這項套件是否有安裝。
     44{{{
     45$ sudo apt-get install build-essential
     46}}}
     47  * 在Hypertable會使用到一些資料壓縮與解壓縮功能,因此需要安裝 z library。
     48{{{
     49$ sudo apt-get install zlib1g-dev
     50}}}
     51  * 安裝可跨平台的makefiles產生工具CMake,因此可以選擇編譯器及編譯環境來產生Hypertable的執行檔;根據官網公佈資訊,目前測試過可執行的平台仍以Linux/Unix為主,Windows平台仍在測試當中。
     52{{{
     53$ sudo apt-get install cmake
     54}}}
     55  * 安裝Boost 程式庫1.34.1以上版本,這套程式庫為強化C++ Standard Library而設計,內含功能像是記憶體的Buffer處理,數學,Hash,MPI,圖形等等函式庫。
     56{{{
     57$ sudo apt-get install libboost.*-dev libboost-doc libboost.*1.34.1
     58}}}
     59  * 安裝log4cpp套件,此套件參考log4j而設計,故名思議是針對c++而設計的記錄日誌檔機制,在Hypertable裡的記錄檔案便是由此套記錄機制在處理Log功能。
     60{{{
     61$ sudo apt-get install liblog4cpp*
     62}}}
     63  * 安裝expat套件,這個套件是一個XML處理程式庫,在Hypertable舉凡對於XML的存取都是引用這個套件來處理。
     64{{{
     65$ sudo apt-get install expat libexpat1 libexpat1-dev
     66}}}
     67  * 安裝libattr套件,它是處理檔案的延伸屬性的程式庫。
     68{{{
     69$ sudo apt-get install libattr1 libattr1-dev
     70}}}
     71  * 安裝readline套件,這份套件內含讀取terminal上的command line程式庫,在Hypertable裡面像是登入hql shell模式,或其他會需要讀取command line的情況會使用到這一類的功能。
     72{{{
     73$ sudo apt-get install libreadline5-dev
     74}}}
     75  * 安裝ncurses,透過它可以撰寫terminal底下的文字模式介面程式,在Hypertable裡面像是登入hql shell模式,或需要模擬文字模式下的使用者介面,會使用到這一類的功能。
     76{{{
     77$ sudo apt-get install libncurses5 libncurses5-dev
     78}}}
     79  * 安裝tcmalloc(Thread-Caching Malloc)套件,它是一個記憶體配置套件,可處理多執行緒情況下的記憶體回收之程式庫。
     80{{{
     81$ sudo apt-get install libgoogle-perftools0 libgoogle-perftools-dev
     82}}}
     83  * 開始編譯程式前還需要建立安裝目錄,以及編譯後的物件檔案存放目錄
     84{{{
     85$ mkdir ~/src/hypertable
     86$ mkdir -p ~/build/hypertable
     87}}}
     88  * 執行CMake來產生編譯組態文件(makefiles),並指定編譯後的執行檔模式為偵錯模式(Debug)或發行模式(Release),以及安裝路徑,如果組態過程中出現找不到預設路徑下的Boost程式庫時,可以再指定其路徑,指令範例如下列所示,其中 -D代表定義某個變數的前置符號。
     89{{{
     90$ cmake -DCMAKE_INSTALL_PREFIX="" -DCMAKE_BUILD_TYPE="Debug" -DBoost_INCLUDE_DIR="/usr/include/boost" ~/hypertable
     91}}}
     92  * 編譯過程中,顯示結果如下:
     93{{{
     94組態過程...
    2995-- Looking for required boost libraries...
    3096-- Boost include dir: /usr/include/boost
     
    44110-- Build files have been written to: /home/sunny/build/hypertable
    45111}}}
     112
    46113 * Build the software (make)
    47114{{{
     
    87154[100%] Built target localBroker
    88155}}}
    89  * Build the software (make install)
     156=== 【如何安裝】 ===
     157 * Install the software (make install)
    90158{{{
    91159sunny@hsihdp:~/build/hypertable$ make install DESTDIR="~/hypertable"
     
    355423-- Installing /home/sunny/hypertable/0.9.0.5/bin/localBroker
    356424}}}
     425=== 【運行迴歸測試程式】 ===
    357426== 【RUN REGRESSION TESTS】 ==
    358427 * Enable the extended attributes on the partition that holds the installation