Building - persmule/amule-dlp.antiLeech GitHub Wiki
- Summary 本文将介绍编译 libantiLeech 的方法
- Labels Phase-Deploy
DLP 就是 Dynamic Leecher Protection(动态吸血保护)的简称。所谓动态就是可以在运行时升级和改变吸血客户端的特征库,然而在 amule-dlp 的稳定版本中,反吸血功能却是被静态的链接进了可执行文件里,因此“动态”是不可能实现的了。 目前,amule-dlp 有一个开发分支在进行真正可以动态加载的 antiLeech 的开发。欲知详情,请移步 https://github.com/persmule/amule-dlp
- 目前 libantiLeech 只在 GNU/Linux 下测试,但在 Mac OS X 下经过适当修改也可用
(我在一年前成功实现过一次,但忘了方法 :-p) - libantiLeech is only tested under GNU/Linux at present,but can also be used under Mac OS X with proper modification
(I have done it successfully one year ago, but I forget how :-p).
- 动态加载的 amule-dlp 被分为两个部分:一为 amule-dlp 包括了 aMule 代码和用于加载 libantiLeech 的代码;另一部分为 libantiLeech 包括绝大多数用于检测吸血骡的代码,所以我们需要分别取出这两个部分的代码。
- Dynamic amule-dlp have 2 parts: amule-dlp including loading code of libantiLeech and libantiLeech library which have leecher database.
编译 amule-dlp 的环境已然基本满足 libantiLeech 的要求。然而,编译安装 libantiLeech 还需要额外的工具,Debian及其后代的用户请使用以下命令安装(需要 root 权限):
# apt-get install autoconf libtool
- 确保您已经在版本库中获得您需要的 antiLeech 版本,进入版本库的目录,首先生成配置代码:
$ ./autogen.sh
- 然后对源代码进行配置:
$ /path/to/configure --prefix=$PREFIX
注意,$PREFIX 最好是当前用户可写的路径。现在我们并不建议将 libantiLeech 安装为全机可用。
- 执行编译:
$ make
$ make install
- 然后在之前设置的 $PREFIX 路径中找到 libantiLeech.so ,将其复制到 $HOME/.aMule 目录中。
- 您也可以将 $PREFIX 设置得与安装 amule-dlp 时的 $PREFIX 相同,并将 libantiLeech 安装为全机可用(需要root权限),但我们并不推荐。
- 运行 aMule 如果在主日志中会出现 "Succeed loading antiLeech",则说明动态加载的 amule-dlp 已经正常工作了。
- 在 aMule 的运行中,您可以按以下步骤动态地更换 libantiLeech.
- 把原来的 libantiLeech.so 从安装位置删除或移除。然后把新的 libantiLeech.so 复制到指定位置。
警告:不要直接用新的 libantiLeech.so 覆盖旧的版本,这样将会造成 amule-dlp 崩溃!
Warning: NEVER overwrite libantiLeech.so with a newer version. It will cause amule-dlp to crash! - 将要让 amule-dlp 重新加载 libantiLeech. 您可以通过 amule 的 DLP 设置对话框重新加载 libantiLeech ,亦可使用 amulecmd 通过远程控制加载 libantiLeech
- 在 aMule 中
点击“设置”,进入 "DLP" 选项卡,点击“重新加载 antiLeech ”按钮,amule-dlp 会弹出一个对话框来说明 libantiLeech 是否成功加载。 - 通过 amulecmd 远程控制
首先确保您可以使用 amulecmd 连接上 amule 或 amuled. 在 amulecmd$ 提示符下执行以下命令:
$ reload antileech
如果成功加载了 libantiLeech ,amulecmd 会提示操作成功,否则 amulecmd 提示出现未知错误。要在出错时确定出错原因,请在 amulecmd$ 提示符使用以下命令查看 amule-dlp 的日志:
$ show log