分页: 1 / 1
apt-get调用aria2下载
发表于 : 2010-11-17 15:42
由 人在井天
网上有apt-fast脚本下载,这个脚本是调用axel来下载,但是,我用的骨头源,发现居然不支持用axel实现多线程下载,仍是一个线程,但发现用aria2却是能够实现的。网上也有调用aria2下载的脚本,我一试却没有成功。于是把这个atp-fast脚本改造了一下,因为自己是菜鸟,所以给每一个命令加上中文注释,高手莫笑:
代码: 全选
# !/bin/sh
# 设置变量
[ "`whoami`" = root ] || exec sudo "$0" "$@"
#获取用户输入命令,显示工作中
if echo "$@" | grep -q "upgrade\|install\|dist-upgrade"; then
echo "Working...";
# 进入下载目录
cd /var/cache/apt/archives/;
#恐怕上次升级的时候一些文件的下载没有完成,先用aria2c下载完成
aria2c -c -s 10 -j 10 -i apt-fast.list
# 获取要下载的软件列表,并形成文件,调用aria2进行下载
apt-get -y --print-uris $@ | egrep -o -e "(ht|f)tp://[^\']+" > apt-fast.list && aria2c -c -s 10 -j 10 -i apt-fast.list
# 下载完毕,重新运行apt-get命令
apt-get $@;
else
apt-get $@;
fi
网上一般的做法是,把这个脚本命名为:apt-fast,并加上可执行权限:
然后把它复制到/usr/bin下面。
以后就可以用apt-fast命令替代apt-get命令,如:
sudo apt-fast dist-upgrade 替代 sudo apt-get dist-upgrade
另,请先安装aria2
代码: 全选
sudo apt-get install aria2
请注意,aria2下载的命令是aria2c,而不是aria2
脚本中aria2c命令所加的参数-c是断点接续,-s 10是以10个线程下载,-j 10 是最大并行下载数为10。
Re: apt-get调用aria2下载
发表于 : 2010-11-17 15:47
由 momova
哇哦,这个不错,我前段时间看到一个和你这个类似的东西。
Re: apt-get调用aria2下载
发表于 : 2010-11-17 16:14
由 人在井天
momova 写了:哇哦,这个不错,我前段时间看到一个和你这个类似的东西。
东西是别人的,只是我加了中文注释,让菜鸟用个明白。
Re: apt-get调用aria2下载
发表于 : 2010-11-17 16:16
由 lubcat
应该不错吧。
Re: apt-get调用aria2下载
发表于 : 2010-11-18 9:57
由 人在井天
我这个比较的懒,一般的懒得把这个脚本复制到/usr/bin下面,我就直接放在主目录下,打开终端直接就可以用这个命令,如:
sudo ./apt-fast dist-upgrade
这个命令代替:
sudo apt-get dist-upgrade
Re: apt-get调用aria2下载
发表于 : 2011-01-17 21:12
由 Drdi
应该会用到的吧 加了注释也看不大懂啊 已经安装好了 apt-fast 把/usr/bin/apt-fast 里面的内容替换一下就可以了吧应该
Re: apt-get调用aria2下载
发表于 : 2011-04-09 14:45
由 _Pilgrim
试试...

Re: apt-get调用aria2下载
发表于 : 2011-09-02 6:54
由 ctrl-fairy
人在井天 写了:网上有apt-fast脚本下载,这个脚本是调用axel来下载,但是,我用的骨头源,发现居然不支持用axel实现多线程下载,仍是一个线程,但发现用aria2却是能够实现的。网上也有调用aria2下载的脚本,我一试却没有成功。于是把这个atp-fast脚本改造了一下,因为自己是菜鸟,所以给每一个命令加上中文注释,高手莫笑:
代码: 全选
# !/bin/sh
# 设置变量
[ "`whoami`" = root ] || exec sudo "$0" "$@"
#获取用户输入命令,显示工作中
if echo "$@" | grep -q "upgrade\|install\|dist-upgrade"; then
echo "Working...";
# 进入下载目录
cd /var/cache/apt/archives/;
#恐怕上次升级的时候一些文件的下载没有完成,先用aria2c下载完成
aria2c -c -s 10 -j 10 -i apt-fast.list
# 获取要下载的软件列表,并形成文件,调用aria2进行下载
apt-get -y --print-uris $@ | egrep -o -e "(ht|f)tp://[^\']+" > apt-fast.list && aria2c -c -s 10 -j 10 -i apt-fast.list
# 下载完毕,重新运行apt-get命令
apt-get $@;
else
apt-get $@;
fi
网上一般的做法是,把这个脚本命名为:apt-fast,并加上可执行权限:
然后把它复制到/usr/bin下面。
以后就可以用apt-fast命令替代apt-get命令,如:
sudo apt-fast dist-upgrade 替代 sudo apt-get dist-upgrade
另,请先安装aria2
代码: 全选
sudo apt-get install aria2
请注意,aria2下载的命令是aria2c,而不是aria2
脚本中aria2c命令所加的参数-c是断点接续,-s 10是以10个线程下载,-j 10 是最大并行下载数为10。
aria2官网有apt-metalink
Re: apt-get调用aria2下载
发表于 : 2022-07-27 14:50
由 宁静致远468835121
那个正则没有匹配到https就稍稍改了一下,请大佬指正
代码: 全选
# !/bin/sh
# 设置变量
[ "`whoami`" = root ] || exec sudo "$0" "$@"
#获取用户输入命令,显示工作中
if echo "$@" | grep -q "upgrade\|install\|dist-upgrade"; then
echo "Working...";
# 进入下载目录
cd /var/cache/apt/archives/;
#恐怕上次升级的时候一些文件的下载没有完成,先用aria2c下载完成
aria2c -c -s 10 -j 10 -i /home/njzy/apt-fast.list
# 获取要下载的软件列表,并形成文件,调用aria2进行下载
apt-get -y --print-uris $@ | egrep -o -e "(http|https|ftp)://[^\']+" > /home/njzy/apt-fast.list && aria2c -c -s 10 -j 10 -i /home/njzy/apt-fast.list
# 下载完毕,重新运行apt-get命令
apt-get $@;
else
apt-get $@;
fi
那个目录换成我个人的了`/home/njzy/apt-fast.list`
Re: apt-get调用aria2下载
发表于 : 2022-07-27 15:36
由 宁静致远468835121
我的ubuntu还是会去重新下载,通过阅读帮助,发现apt会首先下载到/var/cache/apt/archives/partial/,然后mv出来,故做出修改
代码: 全选
# !/bin/bash
# 设置变量
[ "`whoami`" = root ] || exec sudo "$0" "$@"
#获取用户输入命令,显示工作中
if echo "$@" | grep -q "upgrade\|install\|dist-upgrade"; then
echo "Working...";
# 进入下载目录
cd /var/cache/apt/archives/partial/;
#恐怕上次升级的时候一些文件的下载没有完成,先用aria2c下载完成
aria2c -c -s 10 -j 10 -i /home/njzy/apt-fast.list
# 获取要下载的软件列表,并形成文件,调用aria2进行下载
apt-get -y --print-uris $@ | egrep -o -e "(http|https|ftp)://[^\']+" > /home/njzy/apt-fast.list && aria2c -c -s 10 -j 10 -i /home/njzy/apt-fast.list
# 下载完毕,重新运行apt-get命令
apt-get $@;
else
apt-get $@;
fi