Loading... 最近在用脚本给柠檬搬运一些音乐。一个 TR 里大概塞了 3W 多个种子吧,总是会遇到因为 `Too many files open` 而红种的种子,这让我挺难受的,虽然说可以通过限制全局连接数数量来暂时性的解决这个问题,但是还是直接编译一个无文件限制的 TR 客户端永久的解决这个问题比较好。(而且还能增加点新功能) <div class="tip inlineBlock warning"> 使用修改版客户端是各大站点明令禁止的,请自行斟酌利弊。 我只修改了最大文件数量限制,与跳过校验不同的是它不会构成 feak seed。 如果你也只想修改最大文件数量限制,请自行在 github 上找到官方的源码进行修改即可。 </div> --- # 环境 盒子系统为 `Ubuntu 18.04` 使用星大脚本安装过 `TR 2.94 deb` [星大脚本](https://github.com/Aniverse/inexistence)附赠了所有编译 TR 所需要的环境以及编译工具,而且也附赠了所有的 systemctl 文件和 tr 的配置文件,所以直接开草然后替换二进制文件就可以了。 下面的问题,星大已修复。 <div class="tip inlineBlock error"> ~~星大脚本在 ubuntu18.04 上会少安一个包 `libssl1.0-dev` 这会导致严重的内存泄露(不重新编译的解决方法是将 https tracker 更改为 http),如果你在 ubutnu18.04 系统上准备安装 tr,那么请先手动 `apt-get install libssl1.0-dev -y `~~ </div> 当然,你也可以[参考这里](https://github.com/blackyau/Transmission_SkipHashChek) --- # 编译修改 首先安装依赖 ```bash 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` ```bash mkdir ~/tr_backups && cp /usr/bin/transmission-* ~/tr_backups/ ``` 备份以后建议先运行一下 `ls ~/tr_backups` 检查一下文件是否真的备份完成了,不出意外的话,你应该是能看到以下结果: ```bash root@Main-SeedBox ~/tr_backup # ls transmission-create transmission-edit transmission-remote transmission-daemon transmission-gtk transmission-show ``` 确认文件没问题后就可以下载源码了。 ```bash wget https://github.com/blackyau/Transmission_SkipHashChek/archive/2.94_mod.zip ``` 因为下载的源码只做了跳过校验的修改,所以这里还需要二次修改解除文件限制。 ```bash unzip 2.94_mod.zip curl https://fars.ee/Xm6D | patch -p0 ``` **感谢大佬写的patch,请跳过下面划线部分与备份。~~终于可以摆脱烦人的 vi 编辑器了~~** ~~直接输入 `367` 然后回车,跳转到 367 行,不出意外的话你应该能看到下面一段代码,直接将其删除掉,然后 `:wq` 保存即可。~~ <div class="tip inlineBlock warning"> ~~千万不要多删或者少删,不然过不去编译的!~~ </div> <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-40ec57889123ebc2a0a461656019642133" aria-expanded="true"><div class="accordion-toggle"><span style="">一个备份</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-40ec57889123ebc2a0a461656019642133" class="collapse collapse-content"><p></p> ```c #ifndef _WIN32~~~~/* set the open-file limit to the largest safe size wrt FD_SETSIZE */ struct rlimit limit; if (!getrlimit (RLIMIT_NOFILE, &limit)) { const int old_limit = (int) limit.rlim_cur; const int new_limit = MIN (limit.rlim_max, FD_SETSIZE); if (new_limit != old_limit) { limit.rlim_cur = new_limit; setrlimit (RLIMIT_NOFILE, &limit); getrlimit (RLIMIT_NOFILE, &limit); tr_logAddInfo ("Changed open file limit from %d to %d", old_limit, (int)limit.rlim_cur); } } #endif ``` <p></p></div></div></div> 完成后就可以进入根目录准备编译了。 ```bash cd Transmission_SkipHashChek-2.94_mod && bash autogen.sh make ``` 然后进入 `daemon` 文件夹,将新的 `transmission-daemon` 覆盖到 `/usr/bin/` 下即可。 ```bash rm /usr/bin/transmission-daemon cp ./transmission-daemon /usr/bin/transmission-daemon ``` 重启 tr,这里就别无脑抄作业了,记得替换用户名。 ```bash systemctl restart transmission@你的用户名 ``` # 装完了,没啥变化啊? 跳检需要一个正在校验中的种子,选中它,然后点击上方的获取更多 peers 即可。如下图 ![指北.jpg](https://blog.ixiaocai.net/usr/uploads/2020/10/2010019414.png) 文件限制可能在种子少的时候比较少见,但是当你塞了几万个种子而且遇到站免的时候就知道了( 最后修改:2021 年 03 月 29 日 © 允许规范转载 赞 给点.jpg
4 条评论
感谢 !
...
endif想问下是是以上全部都删掉吗?还是删掉红色部分
写了个 patch
unzip 2.94_mod.zip
curl https://fars.ee/Xm6D | patch -p0
这样就打好补丁了
dalao NB !