1. 程式人生 > >avro-c 的安裝

avro-c 的安裝

  Avro是一個數據序列化系統,提供瞭如下功能:

   • 豐富的資料結構。

   • 緊湊、快速、二進位制資料格式。

   • 儲存永續性資料的容器檔案。

   • 遠端過程呼叫 (RPC)。

   • 與動態語言的簡單整合。讀取或寫入資料檔案也不需要程式碼生成來使用或實現 rpc 協議。程式碼生成是一種可選的優化, 僅適用於靜態型別化語言。

  Avro有C、C++、Java等多種語言版本,本文是以C語言版本avro-c-1.8.2為例,介紹Avro安裝步驟。由於Avro是開源專案,需要先下載原始碼,經過編譯之後才能安裝。下邊簡單列舉下安裝步驟。


下載

# wget
http://mirror.bit.edu.cn/apache/avro/avro-1.8.2/c/avro-c-1.8.2.tar.gz

  還有其他兩個下載地址:
  http://mirrors.hust.edu.cn/apache/avro/

  http://mirrors.tuna.tsinghua.edu.cn/apache/avro/

 

編譯與安裝

# tar zxf avro-c-1.8.2.tar.gz
# cd avro-c-1.8.2
# mkdir build
# cd build
# cmake ..
# make
# make install

 

遇到的問題


  使用cmake命令生成Makefile的時候可能會報錯,如下所示:

....
-- Could NOT find Snappy (missing:  SNAPPY_LIBRARIES SNAPPY_INCLUDE_DIR) 
Disabled snappy codec. libsnappy not found or zlib not found.
-- checking for module 'liblzma'
--   package 'liblzma' not found
Disabled lzma codec. liblzma not found.
-- checking for
module 'jansson>=2.3' -- package 'jansson>=2.3' not found CMake Error at CMakeLists.txt:178 (message): libjansson >=2.3 not found -- Configuring incomplete, errors occurred! See also "/data/appstore/avro-c-1.8.2/build/CMakeFiles/CMakeOutput.log".

這是由於缺少lib導致的,需要安裝相應的lib,使用下列命令安裝:

# yum install snappy
# yum install snappy-devel
# yum install lzma
# yum install jansson-devel

安裝lzma後,還是報“package 'liblzma' not found”,不過Makefile已經成功生成,後續編譯和安裝都沒問題。如果還有報其他lib “not found”,安裝即可。