pacman终极提速--metalink,类似迅雷的下载方式
来源:互联网 发布:淘宝上什么活动好 编辑:程序博客网 时间:2024/05/21 14:57
首先介绍一个下载器--aria2。
以前有一个叫做aria的下载器,有图形界面的。但是这个aria2似乎和这个aria并没有什么关系。它是命令行模式的下载工具。
pacman -S aria2
可以直接从extra仓库中安装这个软件。该软件支持多种下载方式(协议):HTTP/HTTPS/FTP/BitTorrent/Metalink
前4种就不必我介绍了,这里重点介绍Metalink。什么是Metalink呢?这里的Metalink可不是Oracle中的那个Metalink。这里的Metalink其实说简单一点,就是提供一个所有包含同一个文件的服务器列表,下载工具尝试和这些服务器建立连接,从而实现多个服务器同时下载文件。这和Windows下的迅雷很象。但是不同的是,迅雷需要一个服务器,而且服务器列表是迅雷的服务器帮你完成的,而metalink是连接本身就包含在列表文件中--或者说,列表是你手动给出的。Archlinux官方ISO下载也采用了metalink的方式。
那么好,我们该如何使用这个工具呢?首先,建立一个脚本文件,命名为pacget,脚本内容如下:
#!/bin/bash
#pacget script
rm -f *.aria2
cachedir=/var/cache/pacman/pkg
file=`echo $1|awk -F '/' '{ print $NF }'`
echo Downloading: $file|sed 's,/,,'
repo=`echo $1|awk -F '/' '{x=NF-3 } { print $x }'`
echo repo: $repo
if [[ $2 = *.db.tar.gz.part || $repo = "testing" ]]; then
echo "(using one mirror)"
mirrors=$1
else
if [ -f /etc/pacman.d/$repo ]; then
mirrors=`sed -n 's/^Server = //; s,$,/'"$file"', ; /^ftp/p; /^http/p' /etc/pacman.d/$repo`
fi
fi
aria2c -t20 -m2 -l /var/log/pacget.log $mirrors -o $file.pacget
if [ -f $cachedir/$file.pacget.aria2 ]; then
rm $cachedir/$file.pacget $cachedir/$file.pacget.aria2
exit 0
fi
mv $file.pacget $2
exit 0
这个脚本是将/etc/pacman.d下的pacman服务器列表生成每个下载文件的服务器列表。并且调用aria2下载指定包。
别忘了将这个文件放置在/usr/bin下,并且加上可执行权限:
chmod +x pacget
然后,修改/etc/pacman.conf文件,指定下载器为pacget:
XferCommand = pacget %u %o >>查看完整文章
查看完整全文,请点击http://www.phpvip.cn/thread-385-1-1.html
精彩文章尽在海纳之家
http://www.phpvip.cn
以前有一个叫做aria的下载器,有图形界面的。但是这个aria2似乎和这个aria并没有什么关系。它是命令行模式的下载工具。
pacman -S aria2
可以直接从extra仓库中安装这个软件。该软件支持多种下载方式(协议):HTTP/HTTPS/FTP/BitTorrent/Metalink
前4种就不必我介绍了,这里重点介绍Metalink。什么是Metalink呢?这里的Metalink可不是Oracle中的那个Metalink。这里的Metalink其实说简单一点,就是提供一个所有包含同一个文件的服务器列表,下载工具尝试和这些服务器建立连接,从而实现多个服务器同时下载文件。这和Windows下的迅雷很象。但是不同的是,迅雷需要一个服务器,而且服务器列表是迅雷的服务器帮你完成的,而metalink是连接本身就包含在列表文件中--或者说,列表是你手动给出的。Archlinux官方ISO下载也采用了metalink的方式。
那么好,我们该如何使用这个工具呢?首先,建立一个脚本文件,命名为pacget,脚本内容如下:
#!/bin/bash
#pacget script
rm -f *.aria2
cachedir=/var/cache/pacman/pkg
file=`echo $1|awk -F '/' '{ print $NF }'`
echo Downloading: $file|sed 's,/,,'
repo=`echo $1|awk -F '/' '{x=NF-3 } { print $x }'`
echo repo: $repo
if [[ $2 = *.db.tar.gz.part || $repo = "testing" ]]; then
echo "(using one mirror)"
mirrors=$1
else
if [ -f /etc/pacman.d/$repo ]; then
mirrors=`sed -n 's/^Server = //; s,$,/'"$file"', ; /^ftp/p; /^http/p' /etc/pacman.d/$repo`
fi
fi
aria2c -t20 -m2 -l /var/log/pacget.log $mirrors -o $file.pacget
if [ -f $cachedir/$file.pacget.aria2 ]; then
rm $cachedir/$file.pacget $cachedir/$file.pacget.aria2
exit 0
fi
mv $file.pacget $2
exit 0
这个脚本是将/etc/pacman.d下的pacman服务器列表生成每个下载文件的服务器列表。并且调用aria2下载指定包。
别忘了将这个文件放置在/usr/bin下,并且加上可执行权限:
chmod +x pacget
然后,修改/etc/pacman.conf文件,指定下载器为pacget:
XferCommand = pacget %u %o >>查看完整文章
查看完整全文,请点击http://www.phpvip.cn/thread-385-1-1.html
精彩文章尽在海纳之家
http://www.phpvip.cn
- pacman终极提速--metalink,类似迅雷的下载方式
- Linux类似迅雷的下载利器uGet
- 让迅雷下载真正提速的四个实用小技巧
- 下载的福音--Metalink
- 一个C#版的类似迅雷下载显示控件
- Linux中的c语言实现类似迅雷那样的下载
- 迅雷X - 类似迅雷的悬浮窗口
- 关于迅雷提速的最终方案
- 类似迅雷下载实现大文件断点续传
- 类似迅雷的悬浮窗口
- 简单的P2P电影下载加速,(类似迅雷下载电影P2P加速)
- 迅雷的可视化下载
- 迅雷如何提速?
- FileDownLoad1.0 类似 使用迅雷下载 功能实现和心得
- 关于ORACLE9206升级补丁没有metalink帐号的下载方法
- 在Metalink上下载Oracle的补丁集
- 问题4:从 Oracle Metalink 下载文档的方法
- 迅雷下载背后的秘密
- WEB系统 记录当前用户个数,当前访问系统的用户名 2
- C# 3.0语言规范
- 排序算法
- 字符取中en长度
- 转贴 borland eco delphi ocl 查询
- pacman终极提速--metalink,类似迅雷的下载方式
- 网页制作常用代码集锦
- Java IDL: The "Hello World" Example Using the POA, a persistent server, and a persistent naming service
- 在Debian操作系统中网卡的设置步骤
- 了解 JAVA classloader
- Mysql日期和时间函数大全
- PHP生成月历代码
- 一个军网站长的故事
- 通货膨胀压力下的理财对策