avro-c 的安裝
阿新 • • 發佈:2018-12-05
Avro是一個數據序列化系統,提供瞭如下功能:
• 豐富的資料結構。
• 緊湊、快速、二進位制資料格式。
• 儲存永續性資料的容器檔案。
• 遠端過程呼叫 (RPC)。
• 與動態語言的簡單整合。讀取或寫入資料檔案也不需要程式碼生成來使用或實現 rpc 協議。程式碼生成是一種可選的優化, 僅適用於靜態型別化語言。
Avro有C、C++、Java等多種語言版本,本文是以C語言版本avro-c-1.8.2為例,介紹Avro安裝步驟。由於Avro是開源專案,需要先下載原始碼,經過編譯之後才能安裝。下邊簡單列舉下安裝步驟。
下載
# wgethttp://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 formodule '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”,安裝即可。