前言
辅大包时,缓慢的校验让人没辙,在PT吧看到有人在维护可以跳过校验的transmission-2.92_skiphashcheck项目,经本篇尝试使用.确实可以跳过校验.
项目地址 :https://github.com/superlukia/transmission-2.92_skiphashcheck
之前在搬瓦工的centos7上面并没有成功跳过校验(没用使用作者的编译方式,而是用cmake方式),本篇使用作者的安装方式安装后,可以成功跳过校验.
注1:只能跳过本地磁盘的内容,如果内容保存在通过GdriveFS或者google-drive-ocamlfuse挂载的谷歌云磁盘,并不能跳过校验.>>rtorrent似乎可以跳过挂载谷歌磁盘的校验,
开始安装前,先查看自己centos版本和内核:
三种方式:
cat /etc/redhat-release
1 2 |
[root@centos6 ~]# cat /etc/redhat-release CentOS release 6.8 (Final) |
uname -r
1 2 |
[root@centos6 ~]# uname -r 2.6.32-642.6.1.el6.x86_64 |
uname -a
1 2 |
[root@centos6 ~]# uname -a Linux centos6 2.6.32-642.6.1.el6.x86_64 #1 SMP Wed Oct 5 00:36:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux |
安装
作者提供的主要步骤概览:
1 2 3 4 5 6 7 |
yum install git git clone https://github.com/superlukia/transmission-2.92_skiphashcheck.git cd transmission-2.92_skiphashcheck ./configure make sudo make install |
实际安装中会有各种支持包需要自行安装
./configure后如果提示在路径中找不到C编译器,需要gcc套件 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@centos6 transmission-2.92_skiphashcheck]# ./configure checking whether make supports nested variables... yes checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking how to create a pax tar archive... gnutar checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for style of include used by make... GNU checking for gcc... no checking for cc... no checking for cl.exe... no configure: error: in `/root/transmission-2.92_skiphashcheck': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details |
安装gcc套件:
1 |
yum install gcc |
继续./configure 如果提示 libevent版本问题:
1 2 3 4 5 6 7 8 9 10 |
checking for LIBCURL... configure: error: Package requirements (libcurl >= 7.15.4) were not met: No package 'libcurl' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBCURL_CFLAGS and LIBCURL_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. |
安装所需依赖,卸载旧版本libevent:
1 2 |
yum install gcc gcc-c++ make yum remove libevent |
libevent官网http://libevent.org
下载libevent稳定版的包,这里选择的是libevent-2.18稳定版(由于是国外资源,可能需要代理才能下载,网上有人提供一个本地的下载包和官网的版本一样wget http://down.whsir.com/downloads/libevent-2.1.8-stable.tar.gz)
1 2 3 4 5 6 |
wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz tar zxf libevent-2.1.8-stable.tar.gz cd libevent-2.1.8-stable ./configure --prefix=/usr make && make install |
继续回transmission-2.92_skiphashcheck目录
./configure 如果提示 intltool错误,安装 yum install intltool
1 2 3 |
./configure: line 19909: intltool-update: command not found checking for intltool >= 0.35.0... found configure: error: Your intltool is too old. You need intltool 0.35.0 or later. |
继续运行./configure 显示以下信息表示通过:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Configuration: Source code location: . Compiler: g++ Build libtransmission: yes * optimized for low-resource systems: no * µTP enabled: yes * crypto library: openssl Build Command-Line client: no Build GTK+ client: no * libappindicator for an Ubuntu-style tray: no Build Daemon: yes Build Mac client: no [root@centos6 transmission-2.92]# |
执行make
1 |
[root@centos6 transmission-2.92]# make |
如果遇到错误 aclocal-1.15' is missing on your system ,原因大致是从git克隆不保留创建时间戳,因此重建被触发
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@centos6 transmission-2.92]# make CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /root/transmission-2.92/missing aclocal-1.15 -I m4 /root/transmission-2.92/missing: line 81: aclocal-1.15: command not found WARNING: 'aclocal-1.15' is missing on your system. You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. The 'aclocal' program is part of the GNU Automake package: <http://www.gnu.org/software/automake> It also requires GNU Autoconf, GNU m4 and Perl in order to run: <http://www.gnu.org/software/autoconf> <http://www.gnu.org/software/m4/> <http://www.perl.org/> make: *** [aclocal.m4] Error 127 |
解决办法 autoreconf -f -i
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@centos6 transmission-2.92]# autoreconf -f -i libtoolize: putting auxiliary files in `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtransmission/Makefile.am:293: compiling `watchdir-test.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.ac' [root@centos6 transmission-2.92]# |
继续安装make和make install:
1 2 3 |
./configure make sudo make install |
安装完毕:
1 2 3 4 5 6 7 8 9 |
make[2]: Leaving directory `/root/transmission-2.92/web' make[1]: Leaving directory `/root/transmission-2.92/web' make[1]: Entering directory `/root/transmission-2.92' make[2]: Entering directory `/root/transmission-2.92' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/root/transmission-2.92' make[1]: Leaving directory `/root/transmission-2.92' [root@centos6 transmission-2.92]# 安装完毕 |
配置
查找配置文件目录并修改: find / -name settings.json
1 2 3 4 5 6 |
[root@centos6 transmission-2.92]# find / -name settings.json /usr/local/transmission/settings.json killall transmission-daemon //关闭进程(否则修改配置无效) vi /usr/local/transmission/settings.json //修改配置 transmission-daemon -g /usr/local/transmission //加载配置运行 |
修改配置文件主要下面4条:
1 2 3 4 5 6 |
"preallocation": 0, //不预分配磁盘空间,下载多少,占用多少. "rpc-authentication-required": true, "rpc-password": "密码", "rpc-username": "用户名", "rpc-whitelist-enabled": false, |
关闭防火墙 service iptables stop
CentOS需要设置开启防火墙端口,为避免端口设置不正确,可先关闭防火墙,待无误后再设置针对的防火墙策略.
1 2 3 4 5 6 7 8 9 |
[root@centos6 transmission-2.92]# service iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] 测试端口畅通 telnet IP 9091 Connecting to 167.114.178.109:9091... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. |
CentOS6.8 防火墙命令:
1 2 3 4 5 6 |
查询防火墙:[root@localhost ~]# service iptables status 停止防火墙:[root@localhost ~]# service iptables stop 启动防火墙:[root@localhost ~]# service iptables start 重启防火墙:[root@localhost ~]# service iptables restart 永久关闭墙:[root@localhost ~]# chkconfig iptables off 永久启用墙:[root@localhost ~]# chkconfig iptables on (永久关闭后启用) |
Transmission跳过校验测试成功:
打开http://ip:9091输入用户名和密码测试成功:
删除种子:
添加种子后,右击Ask tracker for more peers 可直接跳过验证:
使用 Transmission Remote Gui 中的"获取更多peer"亦可跳过校验:
立即完成校验:
在transmission上重命名,会将真实文件也重命名:
使用GDriveFS
将下载目录设置为GDriveFS挂载的谷歌云磁盘目录时,TR客户端和SSH卡一分钟后,恢复正常,开始下载,在还未下载完成的时候,GD硬盘已经在创建文件,说明虽然需要本地缓存,但并非下载完毕才开始上传,而是这边缓存下载,然后同时上传到GD.