当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [分享]怎样在apt-get中使用axel
帖子发表于 : 2006-10-28 19:18 

注册: 2006-10-26 19:57
帖子: 36
送出感谢: 0 次
接收感谢: 0 次
在gentoo中可以通过make.conf进行如下的定义使用axel来下载需要的文件,这通常会比使用wget快4到5倍的时间:

代码:
FETCHCOMMAND="/usr/bin/axel -a -o /\${DISTDIR}/${FILE} \${URI}"
RESUMECOMMAND="/usr/bin/axel -a -o /\${DISTDIR}/${FILE} \${URI}"

但是在ubuntu中,似乎没有提供这样的接口可以修改apt-get让它使用axel来下载文件,在有些国外的服务器上下载文件的时候就会很惨。其实和 Gentoo一样,apt-get也会检查目的路径中是否已经存在了同一个文件,如果存在了就不会再下载,而且apt-get也提供了不下载只打印下载地址的功能,结合这两个特点我们可以写出让apt-get使用axel的脚本。基本的原理就是,先调用apt-get --print-uris打印出要下载的文件,使用axel将这些文件下载到相应的目录,然后再执行正常的apt-get命令。

脚本的内容如下所示:

代码:
#!/bin/bash
# by cnwesleywang@gmail.com
# http://www.wesleywang.net

GOOD=$'\e[32;01m'
WARN=$'\e[33;01m'
BAD=$'\e[31;01m'
HILITE=$'\e[36;01m'
BRACKET=$'\e[34;01m'
NORMAL=$'\e[0m'

Usage="${BAD}Try something like${NORMAL} \"$0 install stardict\""
if [ "$#" -lt 2 ] ; then
   echo "$Usage";
   exit 1;
fi

cmdout=`apt-get $* -y --print-uris`
if [ $? -ne 0 ] ; then
   echo "${BAD}The command you input return fail,check it:$*${NORMAL}"
   exit 1;
fi

urls=`echo $cmdout | grep  -e "http[:/a-zA-Z0-9._-]*.deb" -o`

for aurl in $urls
do
   echo "${HILITE}Trying to download${NORMAL} $aurl"
   cd /var/cache/apt/archives &&  axel  $aurl
   if [ $? -ne 0 ] ; then
      echo "${BAD}Download $aurl fail,Skip!${NORMAL}"
   fi
done

echo "${HILITE}Now execute the normal apt-get command!${NORMAL}"
apt-get $*

使用方法举例:

代码:
sudo ./axelaptget install stardict

在这里下载脚本:http://www.wesleywang.net/sav/axelaptget


_________________
http://www.wesleywang.cn


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-07-31 10:56 

注册: 2007-05-31 21:35
帖子: 25
送出感谢: 0 次
接收感谢: 0 次
这么好的东西竟然没人顶.悲哀阿/
我顶一个.


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-07-31 10:59 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
这样转弯,不人性化啊。不如直接把wget搬开,ln一个axel。


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-07-31 11:11 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
~~~~>_<~~~~~ ls 你真能想啊


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-07-31 11:31 

注册: 2005-10-28 17:40
帖子: 172
送出感谢: 0 次
接收感谢: 0 次
我记得以前有人推荐过一个apt-axel,就是用axel代替wget工作的。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译