由于众所周知的原因, Aria2 在 openwrt 的官方源中不再支持 BT 模块,所以得自己编译。但是问题来了,我不会。。。
之前从恩山那里拿了一个包,但是用了几天后发现不好用,现在到处找包找不到,简直快要疯了。
本来发现有一个网站( http://files.lancethepants.com/Binaries/aria2/) 有 aria2 的最新版,但是下载下来发现文件名竟然没有后缀,都不知道怎么装。我现在就想求个 ipk 包,除了自己编译,真的没有别的办法了吗?
2
Stupitch OP @NemoAlex 卧槽,我刚才就一直在研究你给的这个页面,没想到竟然凑巧被本尊回复,真是感到荣幸啊。
不过,问题来了,我按照步骤走最后 make menuconfig 的时候是没有出现 aria2 的,按照我个人的理解,要么 git clone 是没有把代码搞到 /package/aria2 下面去的(其实我不懂 git 命令怎么运作的,我只知道我 CD 不了这个路径),要么就是 aria2 的源代码的 makefile 出了问题,因为我大概看了下,这个 github 页面的举例的项目都是包含现成的 makefile 的,但是 aria2 是没有的。看了 aria2 的官方编译指南,发现好像意思是需要用 autoreconf -i 这个命令生成标准 makefile (好吧,其实我完全不懂)。 另外,看 aria2 官方的描述,要安装对应的库才能编译对应的模块,所以我又不知道该如何去装了。 本来我想大家用的都是标准的编译方法,用这种办法的应该不多吧,所以我就不知道上哪问去了,没想到作者竟然就出现了,而且还实践编译过 aria2 ,真是救命稻草啊。所以,能否以该教程为蓝本,说一说编译 aria2 的关键细节吗? |
3
fcicq 2016-04-17 22:42:29 +08:00
这个是官方编译版本默认关闭 BT 支持的 commit.
https://github.com/openwrt/packages/commit/2b8aeb50029bb3a46517bd0508b05925bd793f0c 从 Config.in 可知需要打开 ARIA2_METALINK 和 ARIA2_BITTORRENT, 后者依赖 ARIA2_OPENSSL, 打开才会出现. openwrt 的 packages 和主源码分开有日子了, 用 script/feeds update -a; script/feeds install -a 更新激活. |
4
Stupitch OP @fcicq 没太懂你的意思, aria2 本身的机制是配置文件开启模块,但是前提是你得有模块,否则配置文件开启相关功能会有一堆 unknown option 。
libgnutls-dev (Required for HTTPS, BitTorrent, Checksum support) nettle-dev (Required for BitTorrent, Checksum support) libgmp-dev (Required for BitTorrent) libssh2-1-dev (Required for SFTP support) libc-ares-dev (Required for async DNS support) libxml2-dev (Required for Metalink support) zlib1g-dev (Required for gzip, deflate decoding support in HTTP) libsqlite3-dev (Required for Firefox3/Chromium cookie support) pkg-config (Required to detect installed libraries) 官方版本在编译时就没有把 BT 相关的模块给编译进去,所以只能进行普通的 url 下载。 |
5
NemoAlex 2016-04-17 23:27:04 +08:00
没错,想编译官方提供的 package 的话,
script/feeds update script/feeds install -a 之后就可以在 make menuconfig 里找到 aria2 了 |
6
fcicq 2016-04-17 23:28:04 +08:00
|
7
NemoAlex 2016-04-17 23:36:20 +08:00
@fcicq 不用的,在 menuconfig 里, aria2 一项下面有支持 BT 和 metalink 的选项。
选中以后会自动处理依赖。 需要注意的是编译环境的依赖可能会增加一些软件,编译过程中遇到错误的话,可以尝试安装相应的软件来解决。 |
8
fcicq 2016-04-17 23:40:56 +08:00
@NemoAlex 个人不需要 openwrt 版本的 aria2. 但是手里常备 openwrt trunk 的代码所以随时可以检查. 换 musl libc 之后做不出 4M 以内的固件了轻度不爽, 但摆脱 uclibc 总体应该利大于弊.
|
9
Stupitch OP @NemoAlex 这是什么意思呢?是从 openwrt 官方下载 aria2 源码再执行该命令还是说从 aria2 的官方下载源码执行该命令?我看有教程是直接从 aria2 官方源码编译的,又该怎么做?
|
10
Stupitch OP @NemoAlex 又学习了一些教程,发现应该是这样的:把代码 git 到 /package/aria2 下后,应该进入到 /package/aria2 ,然后执行 autoreconf -i (当然前提是所有的环境包都安装好了,否则无法 autoconf 生成相关配置文件)。然后,现在的问题就是,我不会进入到 /package/aria2 这个目录。抱歉,没用过容器,所以不知道如何进入到具体的路径下,求指教。
|
11
NemoAlex 2016-04-18 09:46:52 +08:00 via iPhone
@Stupitch 是的, feeds 就是源码的仓库。一般来说可以用 openwrt 的源码来编译软件,也可以用 SDK 来编译。针对特定版本,例如 15.05.1 的话,最好用 SDK 来编译。
|
12
NemoAlex 2016-04-18 09:56:01 +08:00
Email 联络吧 [email protected]
|