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”,安装即可。