本文讨论一种极其无耻的行为: 把 Arch Linux 中 pacman 的下载链接转换成迅雷(xunlei)的下载列表。
洁身自好者请闪避!
话说世风日下,是个人就用迅雷,再好的网络也得崩溃,何况这边已经惨不忍睹的6栋大楼! 习惯了 Linux 带给我的自由,所以对待winner一直旁观者清。 国之诞辰,无聊四起,于是winner们大开迅雷,linux下那些本分的下载工具纷纷息鼓,奈何我一个星期没有更新系统、还想安个e17玩玩…… 怎么办? 再牛逼的肖邦也弹不出老子的悲伤。
好吧,那么咱也开迅雷(虚拟机)对耗。 Arch Linux 的包管理器是 pacman ,而 pacman 是可以自定义下载器的(其他发行版应该也行); 以前有过例子了: 修改arch下的pacget脚本。 所以这回直接写个脚本提取下载链接, 转换成迅雷的下载列表,最后在虚拟机里导入迅雷即可。 麻烦一点,总比没有好。
脚本如下_(狂击这里下载):
#!/bin/bash
# @script: pac2lst [pacman to xunlei list] && @author: LD King
cachedir=/var/cache/pacman/pkg
lstfile=/etc/pacman.d/xunlei.lst
file=`echo $1|awk -F ‘/’ ‘{ print $NF }’`
recordurl=1
if [[ $2 = *.db.tar.gz.part && -f $cachedir/$file ]]; then
repo=`echo $1|awk -F ‘/’ ‘{x=NF-3 } { print $x }’`
echo -n “Use local $repo db? (Y/N)_”
read ANSWER
case $ANSWER in
[Yy]*)
echo “Choose Yes.”
recordurl=0
repodir=/var/lib/pacman
cp $cachedir/$file $repodir/$file
;;
*)
echo “Choose No.”
;;
esac
fi
if [ $recordurl = 1 ]; then
echo -e $1|\n >> $lstfile
echo Record URL for $file
fi
# Script DONE
使用步骤:
1.把脚本拷贝到PATH中,然后修改 pacman.conf
| user@~$ sudo cp pac2lst /usr/bin/ user@~$ sudo chmod +x /usr/bin/pac2lst user@~$ sudo vim /etc/pacman.conf |
2.使用 pacman 命令生成迅雷的下载列表(/etc/pacman.d/xunlei.lst)
| user@~$ sudo pacman -Su # 其他涉及下载的命令都会把软件包链接写入 xunlei.lst 中; # 所以每次生成列表后,就把文件 xunlei.lst 移走 user@~$ sudo mv /etc/pacman.d/xunlei.lst ~/share |
3.开虚拟机,在迅雷的菜单中选中 “导入下载列表”, 选择 xunlei.lst

在迅雷中导入下载列表
4.下载完后,把软件包拷到与 linux 的共享目录下, 再执行一遍刚才的命令即可
| user@~$ sudo mv ~/share/*.tar.gz /var/cache/pacman/pkg/ user@~$ sudo pacman -Su |
这种方法虽然麻烦,但是确实有效,迅雷在极端环境下比linux的那些下载工具强太多(e.g. wget、aria2c、curl…); 希望国内软件服务快快进入linux, 阉割版的linuxqq总比没有强!
迅雷是吸血的,所以最好还是摒弃…
哈哈,网络慢的时候我就半夜再上网。每天总有几个小时是网络快的适合。