tair官网:http://tair.taobao.org/

其他 http://www.oschina.net/p/tair

根据http://code.taobao.org/p/tair/wiki/index/ 的安装部署文档,自己编译,遇到编译错误。淘宝的人啊,你们都不在其他linux下测试吗?弱智错误。

淘宝tair一般都是在centos下编译安装的,在fedora ubuntu下编译都有错误。

  • 确保安装了automake autoconfig 和 libtool,使用automake --version查看,一般情况下已安装
  • 获得底层库 tbsys 和 tbnet的源代码:(svn checkout http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils).
  • 获得tair源代码:(svn checkout http://code.taobao.org/svn/tair/trunk/ tair).
  • 安装boost-devel库,在用rpm管理软件包的os上可以使用rpm -q boost-devel查看是否已安装该库
cd tairsh bootstrap.sh./configure --with-boost=/usr --with-release=yesmake

经过查错,发现错误主要就三个左右,源码上的错误有:

+++ b/src/common/data_entry.hpp
@@ -28,6 +28,9 @@ namespace tair{namespace common {using namespace tair::util;
+      using namespace std;
+      using namespace __gnu_cxx;
+      class data_entry {public:data_entry()+++ b/src/configserver/server_info.hpp
@@ -25,6 +25,7 @@namespace tair {namespace config_server {using namespace std;
+    using namespace __gnu_cxx;class node_info;class group_info;#pragma pack(1)+++ b/src/dataserver/table_manager.hpp
@@ -27,6 +27,8 @@#include <boost/dynamic_bitset.hpp>+using namespace __gnu_cxx;
+using namespace std;namespace tair {typedef hash_map<int, vector<uint64_t>, hash<int> > bucket_server_map;+++ b/src/dataserver/update_log.hpp
@@ -22,6 +22,7 @@#include <tbsys.h>#include "data_entry.hpp"#include "file_op.hpp"
+#include <stddef.h>namespace tair {using namespace tair::storage::fdb;+++ b/src/storage/mdb/mem_cache.hpp
@@ -26,6 +26,8 @@#include "mem_pool.hpp"#include "tblog.h"#include "mdb_define.hpp"
+using namespace std;
+using namespace __gnu_cxx;namespace tair {#pragma pack(1)struct mdb_item

缺少namespace导致提示vector和hash_map是未定义的,我无语,centos和fedora下的g++就差别这么大么?

还有一个错误,在编译的时候 到src/client/的时候出现错误

/bin/sh .. / .. /libtool --tag=CXX   --mode=link g++  -O2 -finline-functions -Wall -DBOOST_SPIRIT_THREADSAFE -D__USE_LARGEFILE64 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -lpthread -lz -L/usr/lib -lboost_thread-mt    -o tairclient tair_client.o libtairclientapi.la /usr/lib/libtbnet.a /usr/lib/libtbsys.a
libtool: link: g++ -O2 -finline-functions -Wall -DBOOST_SPIRIT_THREADSAFE -D__USE_LARGEFILE64 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -o .libs/tairclient tair_client.o  -L/usr/lib ./.libs/libtairclientapi.so -lpthread -lz -lboost_thread-mt /usr/lib/libtbnet.a /usr/lib/libtbsys.a -Wl,-rpath -Wl,/root/tair_bin/lib
/usr/bin/ld: skipping incompatible /usr/lib/libboost_thread-mt.so when searching for -lboost_thread-mt
/usr/bin/ld: /usr/lib/libtbsys.a(tbtimeutil.o): undefined reference to symbol 'clock_gettime@@GLIBC_2.2.5'
/usr/bin/ld: note: 'clock_gettime@@GLIBC_2.2.5' is defined in DSO /lib64/librt.so.1 so try adding it to the linker command line
/lib64/librt.so.1: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [tairclient] Error 1
make[2]: Leaving directory `/root/Desktop/tair-2.3-update/src/client'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/Desktop/tair-2.3-update/src'
make: *** [all-recursive] Error 1

还有fedora有提示 clock_gettime是在库/usr/lib64/librt.so.1 只要添加这个库就到src/client/Makefile的 CXXFLAGS= 后面,也可以添加-lrt 即可。

编译总算是完成了。

make install 后安装到~/tair_bin/

然后修改etc目录下的

configserver.conf dataserver.conf group.conf

sbin/tair_server -f etc/dataserver.conf

sbin/tair_cfg_srv -f etc/configserver.conf

就可以运行服务了。结束服务根据 tair_bin/tair.sh 里面的内容,可以知道怎么结束:kill `cat logs/server.pid`

TODO:关于如何使用tair-server 开始探讨

淘宝tair的运行方式,其实我感觉跟mongodb redis mysql 都一样,都是运行一个独立的服务器,然后通过客户端连接的。跟我之前接触的leveldb不同,leveldb没有提供这种方式,而是直接嵌入代码,直接执行代码。

tair的客户端有许多语言的支持,这里只说下java的

http://code.taobao.org/p/tair-client-java/src/

TODO:如何使用tair-client-java or CPP等

ps:cnblogs会吧 .. \ .. \ 替换为 cnblogs的域名。当然是去掉空格的。

ubuntu或者fedora下编译淘宝tair key-value-db的开源内存数据库相关推荐

  1. Ubuntu 12.04 下编译Android 4.0.3

    在Ubuntu 12.04 下编译了Android 4.0.3发现了一大堆错误,网上找了一堆的更改源码啊,Android.mk的解决方法,虽然可以编译成功,但都有点坑爹的成分,为了不误人子弟就分享出来 ...

  2. Ubuntu 14.04下编译WebRTC

    阿里云  >  教程中心   >  python教程  >  Ubuntu 14.04下编译WebRTC Ubuntu 14.04下编译WebRTC 发布时间:2018-02-28 ...

  3. Ubuntu 11.04下编译kernel

    Ubuntu 11.04下编译kernel 1. 下载并解压Linux内核源代码, 内核源码下载地址为www.kernel.org,查看当前内核版本命令为uname -r.下载后解压至目录/usr/s ...

  4. 集合下现在淘宝小号所遇见的常见问题

    table cellspacing="0" cellpadding="0"> 集合下现在淘宝小号所遇见的常见问题 : V' z. @6 h+ q! G# ...

  5. 新零售背景下“农村淘宝“线下和线上服务

    新零售背景下"农村淘宝"线下和线上服务 农村淘宝在做什么? 2019年对于农村淘宝(下文简称"村淘")来说是关键的一年,作为阿里巴巴集团新零售战略中的第六路大军 ...

  6. [2014.3.4]天嵌TQ210在Ubuntu 11.04下编译 OpenCV2.0.0(PC)

    (一)先安装cmake (1)网上通用 apt-get install cmake 但我安装后有问题,cmake-gui出现段错误. (2)参考<CMake安装和使用> 解压cmake-2 ...

  7. 3D模型代下【淘宝店3D模型代下渠道】解密

    3D模型代下[淘宝店3D模型代下渠道]解密

  8. fedora下编译运行java傻瓜入门级教程

    操作步骤: 编译运行环境的搭建 fedora下默认安装为GNU公司的JDK,如下所示 $java -version java version "1.7.0_25" OpenJDK ...

  9. python下调用淘宝top接口例子

    这两天用需要测试淘宝top的接口,由于之前都用java下做的.现在要转到python了,所以重新写了一个. 考虑到很多朋友可能也会使用python来调用top的接口,可能会遇到诸如签名的潜规则.为此将 ...

最新文章

  1. Dos中重定向与文件追加
  2. 数据结构与算法-数组
  3. 注册表中shell文件不见了_win7系统注册表中的shell文件不小心被删除的解决方法...
  4. [css] 相邻兄弟选择器、后代选择器和子选择器三者有什么区别?
  5. 实战CGLib系列之proxy:方法拦截MethodInterceptor
  6. ASP.NET Web Froms开发模式中实现程序集的延迟加载
  7. android:contentDescription
  8. rtklib 天线相位中心_(原文链接错,重发)用于WiMAX和WLAN的紧凑型共面波导馈电双频线极化和圆极化单极天线(原载于微波杂志19年7/8月号)...
  9. 电脑出现的问题以及解决方法
  10. System.ConfigurationManager类用于对配置文件的读取
  11. VOW Desktop(CAD看图软件)v1.0.1中文版
  12. Catfishcms v4.8.54环境搭建
  13. 虚拟机VMware16安装教程
  14. java里seri_全面解释Java中的serialVersionUID
  15. java火焰纹章攻略女神之剑_火焰纹章风花雪月图文攻略 主线流程+角色培养+转职系统 白云之章女神再生仪式②-游侠网...
  16. 扫雷游戏(模拟算法)
  17. 服务降级(服务回退)
  18. 关于CMS的两个常用参数的解读
  19. 【小知识】opencv里去掉小连通区域的函数remove_small_objects()解析
  20. python需要购买版权吗_关于版权事宜的一些说明

热门文章

  1. 北大主场夺金ACM-ICPC全球总决赛,总教练罗国杰分享背后“秘笈”
  2. 《连线》杂志专访李彦宏:百度all in AI 欲引领智能革命
  3. 亚马逊推出人工智能咨询服务,机器学习B2B业务又迈出一步
  4. Envoy 源码分析--network L4 filter manager
  5. android openGL ES2 一切从绘制纹理開始
  6. mysql不能插入中文
  7. Selenium中文手册
  8. 【截至2006.12.31】毒霸反间谍可清除的部分流氓软件清单
  9. 第二次冲刺-个人工作总结08
  10. Multimodal —— 看图说话(Image Caption)任务的论文笔记(二)引入attention机制