红联Linux门户
Linux帮助

ubuntu16.04通过修改transmission源码编译安装transmission

发布时间:2016-11-12 14:59:09来源:linux网站作者:xiholix
该方式安装使得其能够通过ipv6在六维下载。
 
1.首先通过官网提供的github地址下载transmission-2.04.tar.xz
下载地址:https://github.com/transmission/transmission-releases/blob/master/transmission-2.04.tar.xz
然后通过命令 
xz-d transmission-2.04.tar.xz
tar -xvf trans*.tar
进行解压
 
2.首先更改metainfo.c中的内容
static int
is_rfc2396_alnum( char ch )
{
return ( '0' <= ch & ch <= '9' )
|| ( 'A' <= ch & ch <= 'Z' )
|| ( 'a' <= ch & ch <= 'z' );
}
改为:
static int
is_rfc2396_alnum( char ch )
{
return ( '0' <= ch & ch <= '9' )
|| ( 'A' <= ch & ch <= 'Z' )
|| ( 'a' <= ch & ch <= 'z' )
|| ( ch == '.' )
|| ( ch == '-' )
|| ( ch == '_' )
|| ( ch == '~' );
}
 
3.将metainfo.c中static void escape( char * out, const uint8_t * in, size_t in_len )函数中的:
out += tr_snprintf( out, 4, "%%%02X", (unsigned int)*in++ );
改为
out += tr_snprintf( out, 4, "%%%02x", (unsigned int)*in++ );
 
4.注释掉web.c中这个内容,就可以连接六维。
if(( addr = tr_sessionGetPublicAddress( s, TR_AF_INET )))
curl_easy_setopt( e, CURLOPT_INTERFACE, tr_ntop_non_ts( addr ) );
 
5.为了得到一个图形界面一定要再加上
sudo apt-get install libgtk2.0-dev
如果不安装libgtk2.0-dev,安装后没有图形界面,只有命令行
 
6.编译安装
然后按照正常的流程
./configure
make
sudo make install
期间:可能会出现缺少一些组件,自己搜索通过apt-get安装。
对于error: libevent 1.4.9 or higher not found!:
通过如下命令解决:
wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
tar -xzvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable.tar
./configure
make
sudo make install
 
7.配置仅使用ipv6流量,不使用ipv4流量
进入配置文件的目录(blocklists是过滤清单所在的文件夹) 
cd ~/.config/transmission/blocklists/
新建并打开一个文件(名字随意) 
touch ip 
vim ip
在ip文件中添加如下的内容 
Ipv4:0.0.0.0-255.255.255.255
打开配置文件 
vim ../settings.json
启用blocklists(默认不启用) 
将"blocklist-enabled"的值设为true
软件重启 
在blocklists文件夹下生成ip.bin文件,说明成功.
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25952.html