ubuntu 配置 TFS

本文提供了一份详细的TFS安装教程,包括降级安装gcc、g++, 安装依赖库如automake、libtool等,以及安装tb-common-utils和TFS的具体步骤。针对安装过程中可能遇到的问题提供了常见问题解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 降级安装gcc,g++

  • 用 apt-get 安装低版本gcc,g++(淘宝使用的是4.1.2)
  • gcc,g++ 多个版本可以交替使用 (g++和下边一样)
  • rm /usr/bin/gcc 
  • ln -s /usr/bin/gcc-4.4 /usr/bin/gcc (gcc-4.4 就是安装的低版本)
  • 用gcc -v ,g++ -v 检查一下

2. TFS安装时会依赖很多库

  • automake TFS基于automake工具构建
    • apt-get install automake
  • libtool automake需要使用libtool
    • apt-get install libtool
  • realine 用于命令行编辑的库
    • apt-get install libreadline-dev
  • libz-devel 用于数据压缩/解压缩
    • apt-get install zlib1g-dev
  • uuid-devel 用于生成全局唯一ID
    • apt-get install uuid-dev
  • tcmalloc google的内存管理库
    • apt-get install libgoogle-perftools-dev

3. 安装tb-common-utils

  • 设置TBLIB_ROOT环境变量
  • 在~/.bashrc中加入 export TBLIB_ROOT="安装tfs的路径"
  • source ~/.bashrc生效

  • 下载源码
  • # svn co -r 18 http://code.taobao.org/svn/tb-common-utils/trunk tb-common-utils
  • version18 以后的修改导致部分接口不能前向兼容。(网上搜集的不知道,没有验证过)

  • 编译安装
  • # cd tb-common-utils
  • # sh build.sh
  • 如果一切顺利,tb-common-utils已经安装成功到$TBLIB_ROOT路径下
  • 若出现错误可能是上边的库没有完全安装成功,或查看下边的Q-A

3.安装TFS

  • 下载源码
  • # svn co http://code.taobao.org/svn/tfs/branches/dev_for_outer_users tfs 
  • 编译安装
  • # cd tfs
  • # sh build.sh init
  • # ./configure --prefix=path_to_tfs --with-release
  • (指定安装路径,配置了好多次都失败在网上查到要加--with-release原因在下边)
  • # make
  • # make install 

  • –prefix 指定tfs安装路径,默认会被安装到~/tfs_bin目录
  • –with-release 指定按release版本的参数进行编译,
  • 如果不指定这个参数,则会按开发版本比较严格的参数编译,
  • 包含-Werror参数,所有的警告都会被当错误,在高版本gcc下会导致项目编译不过,
  • 很多开源用户反馈的编译问题都跟这个有关,因为gcc高版本对代码的检查越来越严格,
  • 淘宝内部使用的gcc版本是gcc-4.1.2。
  • TFS安装完成,若在过程中出现错误查看下边的QA

4. 下边是我安装过程中出现错误,好不容易找到的解决办法,和一些WIKI上的QA也摘抄过来了

  • Q: 使用TFS一定需要64bit Liunx?
  • A: 是的,否则整个项目不能正常编译通过。

  • Q: 编译TFS过程中出现出现类似tbnet.h:39: fatal error: tbsys.h: No such file or directory的错误提示?
  • A: 需要先安装tb-common-utils软件包。

  • Q: 在安装tb-common-utils过程中,提示设置please set TBLIB_ROOT varialbe first!!?
  • A: 需要先设置TBLIB_ROOT环境变量,再编译安装tb-common-utils。

  • Q: 编译过程中出现类似警告:格式 ‘%lu’ 需要类型 ‘long unsigned int’,但实参 3 的类型为 ‘size_t’ ?
  • A: 你的机器使用的应该是32bit OS,如果你坚持要编译,可以自行修改代码或者直接忽略这些警告。

  • Q: 执行./configure时,提示configure: error: readline header files not found, --disable-readline or install gnu readline library?
  • A: 你需要安装readline库,或在configure时加上--disable-readline参数,不使用readline库。

  • Q: 执行./configure时,提示configure: error: tcmalloc link failed (--without-tcmalloc to disable)?
  • A: 你需要安装tcmalloc库, 或在configure时加上--without-tcmalloc参数,不使用tcmalloc库。

  • Q: 编译过程中出现大量的错误信息,类似于warnings being treated as error?
  • A: 请确认在./configure的时候是否加了--with-release参数。

  • Q: 编译过程中提示类似client_request_server.cpp:722:38: error: no matching function for call to ‘atomic_inc(volatile uint64_t*)’的错误信息
  • A: 你的系统时32位的,请在64bit Linux编译安装TFS;因为32bit系统不支持对64bit整数的原子操作。

  • Q: 编译时遇到session_util.cpp:2:23: fatal error: uuid/uuid.h: No such file or directory?
  • A: 你需要先安装uuid库, 用于生成全局唯一ID, uuid库是e2fsprogs包工具的一部分;

  • Q: 编译时提示tfs_meta_helper.cpp:15:18: fatal error: zlib.h: No such file or directory?
  • A: 你需要先安装zlib,用于压缩/解压缩。

  • Q: performance.cpp:25: fatal error: curses.h: 没有那个文件或目录
  • A: 这是因为ubuntu系统中缺少一个套件 ncurses devel ,把此套件安装下即可 apt-get install libncurses5-dev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值