TFS官方有个安装文档(http://code.taobao.org/p/tfs/wiki/get/),不过如果对于小白确实写的太简单了。本人整理了自己编译安装TFS的过程,给大家参考一下。
一、安装依赖包
yum -y install automake
yum -y install libtool
yum -y install readline readline-devel
yum -y install libuuid-devel
yum -y install zlib-devel
yum -y install mysql-devel
安装jemalloc(编译tfs源码要用到)
wget http://www.canonware.com/download/jemalloc/jemalloc-3.5.0.tar.bz2
tar jxvf jemalloc-3.5.0.tar.bz2
./configure --prefix=/usr/local
make && make install
二、TFS依赖于底层开发包tbnet,这里要先安装tbsys和tbnet。
从TaoCode上checkout下tb-common-utils项目。
cd /usr/local/src
svn checkout -r 18 http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils
如果没有安装svn客户端,请先安装svn客户端
yum install subversion
开始编译安装tbsys和tbnet
cd tb-common-utils
mkdir -p /opt/tblib/
设置环境变量TBLIB_ROOT
vim /etc/profile
在最后加上
export TBLIB_ROOT=/opt/tblib/
使环境变量生效
source /etc/profile
安装
sh build.sh
三、对GCC降级
由于TFS编译需要用到gcc 4.1.2,CentOS 6.5默认安装的gcc版本是4.4.7,所以这里要多现有的gcc进行降级。
cd /home/downloads
wget http://www.mirrorservice.org/sites/sources.redhat.com/pub/gcc/releases/gcc-4.1.2/gcc-4.1.2.tar.bz2
tar xjvf gcc-4.1.2.tar.bz2
cd gcc-4.1.2
以下会在名称前面加上当前所在路径方便大家判断命令是在哪里执行的。
新建gcc 4.1.2安装目录
[root@localhost gcc-4.1.2]# mkdir -p /opt/gcc-4.1.2/
[root@localhost gcc-4.1.2]# ./configure --prefix=/opt/gcc-4.1.2/
编译gcc源码的需要,这了要先安装 texinfo
[root@localhost gcc-4.1.2]# yum install texinfo
查找makeinfo的安装路径
[root@localhost gcc-4.1.2]# which makeinfo
/usr/bin/makeinfo
并修改当前文件夹下Makefile文件
[root@localhost gcc-4.1.2]# vim Makefile
将MAKEINFO = MAKEINFO = /home/downloads/gcc-4.1.2/missing makeinfo
修改为MAKEINFO = /usr/bin/makeinfo
安装依赖
[root@localhost gcc-4.1.2]# yum -y install glibc-devel.i686 glibc-devel
安装gcc
[root@localhost gcc-4.1.2]# make
[root@localhost gcc-4.1.2]# make install
时间有点长,需要耐心等待,多核处理器可以在make的时候加上并发处理命名,例如make -j4。
安装完成之后替换系统默认gcc和g++版本为刚才安装的gcc和g++ 4.1.2
[root@localhost bin]# mv /usr/bin/gcc /usr/bin/gccold
[root@localhost bin]# ln -s /opt/gcc-4.1.2/bin/gcc /usr/bin/gcc
[root@localhost bin]# mv /usr/bin/g++ /usr/bin/g++old
[root@localhost bin]# ln -s /opt/gcc-4.1.2/bin/g++ /usr/bin/g++
查看当前gcc版本
gcc -v
四、编译安装TFS
[root@localhost bin]#
[root@localhost src]# svn co http://code.taobao.org/svn/tfs/tags/release-2.2.16
[root@localhost src]# cd release-2.2.16
创建tfs安装目录
[root@localhost src]# mkdir /opt/tfs-2.2.16
[root@localhost release-2.2.16]# sh build.sh init
[root@localhost release-2.2.16]# ./configure --prefix=/opt/tfs-2.2.16/ --without-tcmalloc --with-release
[root@localhost release-2.2.16]# make && make install
至此TFS的安装完成
TFS的配置部署可以参考http://code.taobao.org/p/tfs/wiki/deploy/
TFS的启动运行请参考http://code.taobao.org/p/tfs/wiki/start/
五、其他说明
TFS不一定非得挂载一整个磁盘,可以单独挂载一个文件夹为disk目录。
下面为为挂载一个文件夹为disk的配置文件和对挂载文件夹进行TFS要求的格式的格式化的过程
然后修改tfs配置文件,修改安装目录下/opt/tfs-2.2.16/conf目录下的ds.conf(PS:编译安装之后需要从源码目录/conf下copy配置文件到安装目录)
[root@localhost release-2.2.16]# vim /opt/tfs-2.2.16/conf/ds.conf
修改 mount_name = /home/disk
执行tfs 安装目录下的format命令
[root@localhost release-2.2.16]# cd /opt/tfs-2.2.16/scripts/
[root@localhost scripts]# ./stfs format 1
执行完之后会自动在/home下创建一个disk1的目录,可以看到这个目录下面已经新增了很多文件,这些文件应该就是TFS的Block存储单元
六、FAQ
- 64为的系统,如果启动ds的时候提示error while loading shared libraries: libjemalloc.so.1: cannot open shared object file: No such file or directory
做一下软链接就可以了
ln -s /usr/local/lib/libjemalloc.so.1 /usr/lib64/libjemalloc.so.1