日期:2014-05-16  浏览次数:20818 次

[分享]linux架设BT Tracker服务器小记

原链接:www.taoer.com

?

目前开源的Bt tracker项目有:
官方Tracker为?www.bittorrent.com/?使用python语言

xbtt.sf.net?的c++ tracker
sourceforge.net/cvs/?group_id=94951

windows下的tracker?www.bitcomet.com/tracker/index-zh.htm
这个似乎不是开源的说?不用管他,反正也不用windows做服务器。

另外介绍一个论坛:http://www.isohunt.com/forum/

我使用的是 c++ 的xbt tracker
下面我就以这个为例来把我的架设过程描述下。

首先下载BT tracker
在xbt的主页和?sourceforge.net/cvs/?group_id=94951?都有说明使用CVS方式下载源代码

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/xbtt co xbt/misc xbt/XBT\ Tracker
这样你可以下载xbt tracker 和与之相关的源代码

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/xbtt co xbt
这样你可以下载xbt所有的源代码,其中有用的是misc和XBT Tracker目录

执行后,你会得到一个xbt名字的目录,还犹豫什么,cd呗
进入XBT Tracker目录
新建一个名字为 xbt_tracker.conf 的文件
文件格式如下:
数据库名 主机地址 mysql用户名 mysql密码 表名前缀
然后用mysql命令行工具进入你的mysql数据库
/usr/local/mysql/bin/mysql -hlocalhost -uroot -p -P3306 -S/tmp/mysql.3306.sock #根据你不同的mysql配置这里也会不同
#最简单的: mysql -uroot -p

然后 create database tracker; #这里的tracker替换成你的配置文件的数据库名
use tracker;
\. xbt_tracker.sql;
exit;

好了,数据库方便搞完了,接下来要搞tracker了
chmod 0755 make.sh
./make.sh

如果出现了下面的错误:
In file included from ../misc/sql/database.h:13,
from server.h:8,
from connection.cpp:6:
../misc/sql/sql_result.h:16:25: mysql/mysql.h: No such file or directory
In file included from ../misc/sql/database.h:13,
from server.h:8,
from connection.cpp:6:

请执行一下这步操作
cd ../misc
ln -s /usr/local/mysql/include/mysql/ mysql
cd ../XBT\ Tracker/
./make.sh

不出以外的话,就执行成功了

然后在当前目录下你会发现多出一个 xbt_tracker的文件
没错,运行这个文件
./xbt_tracker

如果出现了这个错误:
./xbt_tracker: error while loading shared libraries: libmysqlclient.so.12: cannot open shared object file: No such file or directory

这样来做
cd /usr/lib/
ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12 libmysqlclient.so.12
cd -
./xbt_tracker
ok运行成功了

注意上面的ln命令要根据你的mysql的配置的路径自行做相应的修改

再次进入你的mysql
use tracker;
SELECT * FROM xbt_tracker;
如果显示为空;
执行下面的sql语句

INSERT INTO xbt_config (name,value) VALUES ('announce_interval', '1800'); INSERT INTO xbt_config (name,value) VALUES ('anonymous_connect', '1'); INSERT INTO xbt_config (name,value) VALUES ('anonymous_announce', '1'); INSERT INTO xbt_config (name,value) VALUES ('anonymous_scrape', '1'); INSERT INTO xbt_config (name,value) VALUES ('auto_register', '1'); INSERT INTO xbt_config (name,value) VALUES ('clean_up_interval', '60'); INSERT INTO xbt_config (name,value) VALUES ('daemon', '1'); INSERT INTO xbt_config (name,value) VALUES ('debug', '0'); INSERT INTO xbt_config (name,value) VALUES ('gzip_announce', '1'); INSERT INTO xbt_config (name,value) VALUES ('gzip_debug', '1'); INSERT INTO xbt_config (name,value) VALUES ('gzip_scrape', '1'); INSERT INTO xbt_config (name,value) VALUES ('listen_check', '0'); INSERT INTO xbt_config (name,value) VALUES ('listen_ipa', '*'); INSERT INTO xbt_config (name,value) VALUES ('listen_port', '2710'); INSERT INTO xbt_config (name,value) VALUES ('log_access', '0'); INSERT INTO xbt_config (name,value) VALUES ('log_announce',