编译一个支持跳检以及无限文件限制的 Transmission 2.94 客户端

这是一篇发布于 1421 天前的文章,部分信息可能已发生改变。

最近在用脚本给柠檬搬运一些音乐。一个 TR 里大概塞了 3W 多个种子吧,总是会遇到因为 Too many files open 而红种的种子,这让我挺难受的,虽然说可以通过限制全局连接数数量来暂时性的解决这个问题,但是还是直接编译一个无文件限制的 TR 客户端永久的解决这个问题比较好。(而且还能增加点新功能)

警告:

使用修改版客户端是各大站点明令禁止的,请自行斟酌利弊。
我只修改了最大文件数量限制,与跳过校验不同的是它不会构成 fake seed。
如果你也只想修改最大文件数量限制,请自行在 github 上找到官方的源码进行修改即可。


环境

盒子系统为 Ubuntu 18.04 使用星大脚本安装过 TR 2.94 deb

星大脚本附赠了所有编译 TR 所需要的环境以及编译工具,而且也附赠了所有的 systemctl 文件和 tr 的配置文件,所以直接开草然后替换二进制文件就可以了。

{& note warning %}
EDIT: 这里的问题星大已修复,不用再手动安装 libssl1.0-dev
{& endnote %}

当然,你也可以参考这里


编译修改

首先安装依赖

1
apt-get install -y libcurl4-openssl-dev libglib2.0-dev libevent-dev libminiupnpc-dev libgtk-3-dev libappindicator3-dev pkg-config automake autoconf cmake libtool intltool build-essential openssl libssl1.0-dev libssl-dev

开始前先做一个备份,养成备份的好习惯,万一翻车了也能救回来(

星大脚本的 tr 的二进制文件是放在 /usr/bin/ 目录下的,将其备份到家目录下的 tr_backups

1
mkdir ~/tr_backups && cp /usr/bin/transmission-* ~/tr_backups/

备份以后建议先运行一下 ls ~/tr_backups 检查一下文件是否真的备份完成了,不出意外的话,你应该是能看到以下结果:

1
2
3
root@Main-SeedBox ~/tr_backup # ls
transmission-create transmission-edit transmission-remote
transmission-daemon transmission-gtk transmission-show

确认文件没问题后就可以下载源码了。

1
wget https://github.com/blackyau/Transmission_SkipHashChek/archive/2.94_mod.zip

因为下载的源码只做了跳过校验的修改,所以这里还需要二次修改解除文件限制。

1
2
3
4
5
unzip 2.94_mod.zip
curl https://fars.ee/Xm6D | patch -p0
# 进入根目录进行编译
cd Transmission_SkipHashChek-2.94_mod && bash autogen.sh
make

然后进入 daemon 文件夹,将新的 transmission-daemon 覆盖到 /usr/bin/ 下即可。

1
2
rm /usr/bin/transmission-daemon
cp ./transmission-daemon /usr/bin/transmission-daemon

重启 tr,这里就别无脑抄作业了,记得替换用户名。

1
systemctl restart transmission@你的用户名

装完了,没啥变化啊?

跳检需要一个正在校验中的种子,选中它,然后点击上方的获取更多 peers 即可。如下图
指北.jpg

文件限制可能在种子少的时候比较少见,但是当你塞了几万个种子而且遇到站免的时候就知道了(