热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

当前位置 :| 主页>Linux教程>软件应用>

pacman终极提速--metalink

来源: 作者: 时间:2007-08-11 Tag: 点击:
首先介绍一个下载器--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


接下来,就可以以平常的方式使用pacman了。不过pacman自己带的服务器列表比较老,很多服务器不是不存在了就是更新慢,有些我们这里根本连不上。不符合中国"国情"。服务器贵精不贵多,我这里给出几个更新还算及时,速度还算可以的服务器(国外的,本人是网通):
代码:
http://ftp.belnet.be/linux/archlinux http://mirror.cs.vt.edu/pub/ArchLinux http://mirrors.easynews.com/linux/archlinux http://distro.ibiblio.org/pub/linux/distributions/archlinux http://ftp.gigabit.nu/archlinux
将这几个服务器替换到你的/etc/pacman.d/下的服务器列表文件即可。
最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册