萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Ubuntu編譯安裝Hypertable的方法

Ubuntu編譯安裝Hypertable的方法

  HyperTable是開源的數據庫,在Ubuntu系統中的安裝並沒有那麼簡單,下面小編將針對HyperTable在Ubuntu下的編譯安裝做個詳細的介紹,如果你還不知道怎麼安裝的話可以來學習一下。

 Ubuntu編譯安裝Hypertable的方法

  【安裝】

  安裝過程運行於Ubuntu操作系統,以下所列說明指令適用於Ubuntu的安裝方式,若使用者要安裝到其他作業平台環境,可以參考下列安裝項目並以通用該平台的安裝指令來取代之,接下來會說明編譯過程中的相關檔案存放位置,以及如何組態並編譯原始程式碼,最後再說明安裝方式及如何執行迴歸測試。

  Hypertable原始程式碼的存放路徑放置於:

  ~/src/hypertable

  編譯過程中所產生的連結物件檔存放於:

  ~/build/hypertable

  編譯完成的輸出執行檔存放路徑:

  ~/hypertable

  【下載原始程式碼】

  要取得Hypertable原始碼需要先安裝 git這套由google所提出的版本控制軟體,安裝指令如下:

  $ sudo apt-get install git-core

  然後執行以下指令設定git所通行的使用者資訊,這一份使用者資訊原則上是由git這套版本控制軟體儲存,以及留作記錄程式碼被哪些使用者下載的一份參考來源,其設定使用者資訊方式如下:

  $ git config --global user.name “《your name》”

  $ git config --global user.email “《your email》”

  使用git下載Hypertable原始碼之指令:

  $ git clone git://scm.hypertable.org/pub/repos/hypertable.git

  更新已下載之Hypertable原始碼方式:

  $ cd ~/hypertable

  $ git pull

  【如何設定編譯組態】

  在編譯Hypertable之前,需要先把編譯環境准備好,有一些編譯軟體要先安裝就序,以下條列出在Ubuntu環境下,各項編譯軟體的安裝指令:

  此套件在安裝C語言標准程式庫所需要的編譯環境,如果沒有安裝build-essential套件時可能會出現編譯階段找不到stdio.h這個引入檔案的位置,因此建議要先確認這項套件是否有安裝。

  $ sudo apt-get install build-essential

  在Hypertable會使用到一些資料壓縮與解壓縮功能,因此需要安裝 z library。

  $ sudo apt-get install zlib1g-dev

  安裝可跨平台的makefiles產生工具CMake,因此可以選擇編譯器及編譯環境來產生Hypertable的執行檔;根據官網公佈資訊,目前測試過可執行的平台仍以Linux/Unix為主,Windows平台仍在測試當中。

  $ sudo apt-get install cmake

  安裝Boost 程式庫1.34.1以上版本,這套程式庫為強化C++ Standard Library而設計,內含功能像是記憶體的Buffer處理,數學,Hash,MPI,圖形等等函式庫。

  $ sudo apt-get install libboost.*-dev libboost-doc libboost.*1.34.1

  安裝log4cpp套件,此套件參考log4j而設計,故名思議是針對c++而設計的記錄日志檔機制,在Hypertable裡的記錄檔案便是由此套記錄機制在處理Log功能。

  $ sudo apt-get install liblog4cpp*

  安裝expat套件,這個套件是一個XML處理程式庫,在Hypertable舉凡對於XML的存取都是引用這個套件來處理。

  $ sudo apt-get install expat libexpat1 libexpat1-dev

  安裝libattr套件,它是處理檔案的延伸屬性的程式庫。

  $ sudo apt-get install libattr1 libattr1-dev

  安裝readline套件,這份套件內含讀取terminal上的command line程式庫,在Hypertable裡面像是登入hql shell模式,或其他會需要讀取command line的情況會使用到這一類的功能。

  $ sudo apt-get install libreadline5-dev

  安裝ncurses,透過它可以撰寫terminal底下的文字模式介面程式,在Hypertable裡面像是登入hql shell模式,或需要模擬文字模式下的使用者介面,會使用到這一類的功能。

  $ sudo apt-get install libncurses5 libncurses5-dev

  安裝tcmalloc(Thread-Caching Malloc)套件,它是一個記憶體配置套件,可處理多執行緒情況下的記憶體回收之程式庫。

  $ sudo apt-get install libgoogle-perftools0 libgoogle-perftools-dev

  開始編譯程式前還需要建立安裝目錄,以及編譯後的物件檔案存放目錄

  $ mkdir ~/src/hypertable

  $ mkdir -p ~/build/hypertable

  執行CMake來產生編譯組態文件(makefiles),並指定編譯後的執行檔模式為偵錯模式(Debug)或發行模式(Release),以及安裝路徑,如果組態過程中出現找不到預設路徑下的Boost程式庫時,可以再指定其路徑,指令范例如下列所示,其中 -D代表定義某個變數的前置符號。

  $ cmake -DCMAKE_INSTALL_PREFIX=“~/hypertable” -DCMAKE_BUILD_TYPE=“Debug” -DBoost_INCLUDE_DIR=“/usr/include/boost” ~/src/hypertable

  在產生編譯程式讀取的組態檔過程中,顯示結果加註說明如下:

  組態過程。。.

  -- Looking for required boost libraries.。。

  尋找boost程式庫當中。。.

  -- Boost include dir: /usr/include/boost

  找到boost的header檔案路徑

  -- Boost thread lib: /usr/lib/libboost_thread-mt.so

  找到boost的多執行緒處理之動態程式庫

  -- Boost program options lib: /usr/lib/libboost_program_options-mt.so

  找到boost的程式參數處理之動態程式庫

  -- Boost lib dir: /usr/lib

  找到boost的動態程式庫存放路徑

  -- Boost version: 1_34_1

  顯示boost的版本資訊

  -- Looking for doxygen.。。

  尋找doxygen程式庫當中。。.

  -- Looking for doxygen.。。 - found /usr/bin/doxygen

  找到doxygen的執行程式路徑

  -- Looking for dot tool.。。

  尋找graphviz繪圖使用的dot套件

  -- Looking for dot tool.。。 - found /usr/bin/dot

  找到dot的執行程式路徑

  -- Found Tcmalloc: /usr/lib/libtcmalloc_minimal.so

  找到tcmalloc的動態連結程式庫路徑

  -- Got boost 1.34.x, prepend fix directory

  -- Configuring done

  -- Generating done

  -- Build files have been written to: ~/build/hypertable

  組態完成後把編譯需要的設定檔放到指定路徑~/build/hypertable

  【如何編譯與安裝】

  開始編譯之前,要先切換到編譯組態檔的存放路徑,根據上述組態預設路徑為~/build/hypertable,然後再執行編譯指令:

  $ cd ~/build/hypertable

  $ make

上一頁1234下一頁共4頁

  編譯之後的結果顯示如下:

  [ 6%] Built target HyperComm

  [ 10%] Built target HyperCommon

  [ 11%] Built target commTest

  [ 12%] Built target commTestDatagram

  [ 12%] Built target commTestReverseRequest

  [ 13%] Built target commTestTimeout

  [ 13%] Built target commTestTimer

  [ 13%] Built target sampleClient

  [ 14%] Built target testServer

  [ 14%] Built target htConvert

  [ 17%] Built target Hyperspace

  [ 33%] Built target Hypertable

  [ 42%] Built target HyperDfsBroker

  [ 50%] Built target Hyperspace.Master

  [ 56%] Built target Hypertable.Master

  [ 57%] Built target htgc

  [ 73%] Built target Hypertable.RangeServer

  [ 76%] Built target count_stored

  [ 79%] Built target csdump

  [ 79%] Built target bmz-test

  [ 79%] Built target bmzip

  [ 80%] Built target compressor_test

  [ 80%] Built target generate_test_data

  [ 80%] Built target loadDataSourceTest

  [ 81%] Built target locationCacheTest

  [ 81%] Built target schemaTest

  [ 85%] Built target dfsTest

  [ 88%] Built target dfsclient

  [ 94%] Built target hyperspace

  [ 94%] Built target hyperspaceTest

  

copyright © 萬盛學電腦網 all rights reserved