weyoung 发表于 2013-3-27 09:23:41

自己编译aria

本帖最后由 weyoung 于 2013-3-27 10:20 编辑

http://www.gebi1.com/thread-26697-1-1.html这个帖子提供了aria 1.16.3的可执行文件下载,前两天我看到官网的版本是1.16.4,今天上来已经是1.16.5了。。


http://forum.buffalo.nas-central.org/viewtopic.php?f=68&t=23603&view=previous,这个是老外论坛上找到的编译步骤,可以在ls-wvl上直接编译源码,简单说明下步骤(###是我添加的说明)。以下是1.16.5为例

ipkg install gcc make
ipkg install gnutls zlib c-ares
###上面两步是安装编译环境

mkdir /mnt/disk1/share/aria
###创建一个临时文件夹

cd /mnt/disk1/share/aria
wget http://sourceforge.net/projects/aria2/files/stable/aria2-1.16.5/aria2-1.16.5.tar.bz2/download
###将最新版本的源代码下载到临时文件夹下。最新版本可以到官网(http://aria2.sourceforge.net/)去找。


tar xvfj *.bz2
###将文件解压
cd aria2-1.16.5
###进入解压后的目录

###以下三个步骤的作用,google得到的:
###./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC
###make是用来编译的,它从Makefile中读取指令,然后编译。
###make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
###另外请注意这几个步骤都比较慢,configure 要几分钟,make要十几分钟。

./configure --with-libgcrypt-prefix
make
make install

###编译完成,将编译后的文件拷贝到opt目录下
cp /mnt/disk1/share/aria/src/aria2c /opt/bin/.

最后重启程序,通过aria2c -v可以查看版本号。
结束,希望对大家能有用。

bgtzhang 发表于 2013-3-27 10:26:16

东西不错,应该试试。编译的主要问题其实是编译环境的架设

0i0 发表于 2013-3-27 11:36:54

嗯,应该试试。

felixqu 发表于 2013-3-27 15:50:31

谢谢分享,回家试试

Jays 发表于 2013-3-28 11:08:18

为什么我安装的版本还是 aria2 - 1.14.2-1而且检测升级也没有提示可用的升级

weyoung 发表于 2013-3-28 20:27:05

Jays 发表于 2013-3-28 11:08 static/image/common/back.gif
为什么我安装的版本还是 aria2 - 1.14.2-1而且检测升级也没有提示可用的升级

这个会自动提示版本升级吗?我好象没看到有这个选项或命令。
需要自己编译替换的。

zal1412 发表于 2013-3-28 23:27:06

本帖最后由 zal1412 于 2013-3-28 23:29 编辑

小白一名,升级了,结果不能开机自动启动了。。(原来的启动文件没动过)

希望LZ能帮忙解决一下,谢谢!

weyoung 发表于 2013-3-29 10:10:15

zal1412 发表于 2013-3-28 23:27 static/image/common/back.gif
小白一名,升级了,结果不能开机自动启动了。。(原来的启动文件没动过)

希望LZ能帮忙解决一下,谢谢!


试着用root登录将aria2c文件的属性改成777?
chmod 777 /opt/bin/aria2c

zal1412 发表于 2013-3-29 19:22:31

本帖最后由 zal1412 于 2013-3-29 19:43 编辑

weyoung 发表于 2013-3-29 10:10 static/image/common/back.gif
试着用root登录将aria2c文件的属性改成777?
chmod 777 /opt/bin/aria2c

跟你说的一样,感谢~{:7_204:}

想再问个问题。。LZ的启动文件是怎么写的?我是觉得很奇怪,为什么论坛分享的启动文件,把设置参数都写在里面了,这样配置ARIA2,感觉不利修改啊。

weyoung 发表于 2013-4-1 11:09:27

zal1412 发表于 2013-3-29 19:22 static/image/common/back.gif
跟你说的一样,感谢~

想再问个问题。。LZ的启动文件是怎么写的?我是觉得很奇怪,为什么论坛分 ...

你的这个问题,正是我要编译新版本aria用的原因之一,新版本有两个改进:
1). 支持将配置写在配置文件中,启动时不要再指定那些参数。
2). 支持将未完成的下载写到Session文件中保存,机器重启后会自动还原。


我的配置:
1. 配置一个aria2Start.sh启动文件,内容如下:#!/bin/bash
export HOME=/root

DOWNDIR="/mnt/disk1/share/aria2down"
CONFIGFILE="/mnt/disk1/share/aria2conf/aria2.conf"
aria2c -c -D --conf-path=$CONFIGFILE --dir=$DOWNDIR注:aria2.conf文件中的配置信息,论坛中有个帖子有示例,我就是照抄的。
2. 配置一个aria2Shutdown.sh,用于关闭aria,内容如下:cat aria2Shutdown.sh
#!/bin/bash
export HOME=/root

killall aria2c这样需要手工启动或关闭时只需执行aria2Start.sh或aria2Shutdown.sh。还可以配置在crontab中,定时启动下载和停止下载。比如我就配置了每个工作日凌晨2点开始下载、傍晚17点停止下载,这样确保我或我老婆在家时不会因为下载而影响了上网速度。(我自己还好,感觉上网速度慢时就手动关闭Aria和transmission,但我老婆不会弄这些,因此我需要定时关闭下载的功能)。

zal1412 发表于 2013-4-2 02:53:52

本帖最后由 zal1412 于 2013-4-2 02:54 编辑

weyoung 发表于 2013-4-1 11:09 static/image/common/back.gif
你的这个问题,正是我要编译新版本aria用的原因之一,新版本有两个改进:
1). 支持将配置写在配置文件 ...

经过你的指点,试过都可以了,真的太感谢了。。

启动文件,单纯启动ARIA2,配置全在aria2.conf里设置,这样确实直观多了,也能设置得更详细.#!/bin/bash
export HOME=/root
/opt/bin/aria2c --conf-path=/mnt/array1/.aria2c/aria2.conf -c -D

乐天派 发表于 2013-4-5 21:58:54

713+上编译失败了,哎

weyoung 发表于 2013-4-5 22:29:13

乐天派 发表于 2013-4-5 21:58 static/image/common/back.gif
713+上编译失败了,哎

有没具体的错误信息?

乐天派 发表于 2013-4-6 00:06:04

weyoung 发表于 2013-4-5 22:29 static/image/common/back.gif
有没具体的错误信息?

makeall-recursive
make: Entering directory `/volume1/temp/aria2-1.16.5'
Making all in po
make: Entering directory `/volume1/temp/aria2-1.16.5/po'
make: Leaving directory `/volume1/temp/aria2-1.16.5/po'
Making all in intl
make: Entering directory `/volume1/temp/aria2-1.16.5/intl'
make: Nothing to be done for `all'.
make: Leaving directory `/volume1/temp/aria2-1.16.5/intl'
Making all in lib
make: Entering directory `/volume1/temp/aria2-1.16.5/lib'
make: Nothing to be done for `all'.
make: Leaving directory `/volume1/temp/aria2-1.16.5/lib'
Making all in deps
make: Entering directory `/volume1/temp/aria2-1.16.5/deps'
Making all in wslay
make: Entering directory `/volume1/temp/aria2-1.16.5/deps/wslay'
makeall-recursive
make: Entering directory `/volume1/temp/aria2-1.16.5/deps/wslay'
Making all in lib
make: Entering directory `/volume1/temp/aria2-1.16.5/deps/wslay/lib'
Making all in includes
make: Entering directory `/volume1/temp/aria2-1.16.5/deps/wslay/lib/includes'

make: Nothing to be done for `all'.
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps/wslay/lib/includes'
make: Entering directory `/volume1/temp/aria2-1.16.5/deps/wslay/lib'
make: Nothing to be done for `all-am'.
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps/wslay/lib'
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps/wslay/lib'
Making all in tests
make: Entering directory `/volume1/temp/aria2-1.16.5/deps/wslay/tests'
make: Nothing to be done for `all'.
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps/wslay/tests'
make: Entering directory `/volume1/temp/aria2-1.16.5/deps/wslay'
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps/wslay'
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps/wslay'
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps/wslay'
make: Entering directory `/volume1/temp/aria2-1.16.5/deps'
make: Nothing to be done for `all-am'.
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps'
make: Leaving directory `/volume1/temp/aria2-1.16.5/deps'
Making all in src
make: Entering directory `/volume1/temp/aria2-1.16.5/src'
/bin/ash ../libtool --tag=CXX   --mode=link g++-g -O2   -o aria2c main.o optio

n_processing.o version_usage.o libaria2c.a    ../deps/wslay/lib/libwslay.la -lrt

-L/opt/lib -lgcrypt -lgpg-error -L/opt/lib -lxml2 -lz -lm
libtool: link: g++ -g -O2 -o aria2c main.o option_processing.o version_usage.o

libaria2c.a ../deps/wslay/lib/.libs/libwslay.a -lrt -L/opt/lib /opt/lib/libgcryp

t.so /opt/lib/libgpg-error.so -lxml2 -lz -lm -Wl,-rpath -Wl,/opt/lib -Wl,-rpath

-Wl,/opt/lib
main.o: In function `__exchange_and_add':
/opt/lib/gcc/i686-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext/atomicity.h:

51: undefined reference to `__sync_fetch_and_add_4'
/opt/lib/gcc/i686-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext/atomicity.h:

51: undefined reference to `__sync_fetch_and_add_4'
/opt/lib/gcc/i686-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext/atomicity.h:

51: undefined reference to `__sync_fetch_and_add_4'
/opt/lib/gcc/i686-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext/atomicity.h:

51: undefined reference to `__sync_fetch_and_add_4'
main.o: In function `__exchange_and_add':
/volume1/temp/aria2-1.16.5/src/SharedHandle.h:176: undefined reference to `__syn

c_fetch_and_add_4'
main.o:/opt/lib/gcc/i686-linux-gnu/4.2.1/../../../../include/c++/4.2.1/ext/atomi

city.h:51: more undefined references to `__sync_fetch_and_add_4' follow
collect2: ld returned 1 exit status
make: *** Error 1
make: Leaving directory `/volume1/temp/aria2-1.16.5/src'
make: *** Error 1
make: Leaving directory `/volume1/temp/aria2-1.16.5'
make: *** Error 2

乐天派 发表于 2013-4-6 11:47:32

是不是gcc版本的问题啊

weyoung 发表于 2013-4-7 11:32:52

乐天派 发表于 2013-4-6 11:47 static/image/common/back.gif
是不是gcc版本的问题啊

make: *** Error 1
没有具体的错误信息。。

xforce 发表于 2013-9-10 23:14:06

我之前编译老是出错

yzyxin 发表于 2016-12-21 20:59:11

mark,现在到1.30版了,能找到的只有1.85

yzyxin 发表于 2017-7-1 06:35:44

谢谢分享,学习中。
页: [1]
查看完整版本: 自己编译aria