| 管理

 站点日历

 

SunMTuWThFSa
123456
78910111213
14151617181920
21222324252627
28293031

 

 最新评论

 

 友情连接

 

站点统计

  • 总访问:
  • 周访问:
  • 在线人数:
  • 潜水员:
  • 历史最多在线:
  •   发生在:
  • 日志总数:
  • 回复总数:

 

返回||Computer
apt下载加速的方法 [2006-05-05] store88 发表在 ||Computer
原地址:http://foxshy.bokee.com/2451158.html
熟悉debian的用户都知道,使用apt来安装软件的时候都是单线程下载然后安装的,如果要下载的软件包非常多而且源服务器的速度又很慢,下载的过程实在漫长而痛苦。昨天我偶然发现了一个方法可以使这种情况得以改变。

首先,要明确的就是,本方法不是让apt实现多线程,因为出于礼貌的原因,apt的开发人员没有为apt开发多线程下载的功能,不是不能,而是不想,所以作为用户我也无能为力。

其次,我没有使用那个apt多线程下载的脚本工具--axel,因为它和apt+prozilla在原理上没有什么区别,只不过是更加自动化一点。

我所使用的方法只是在/etc/apt/sources.list文件中做一些小的改动就可以了。

我们先来看一下apt的工作方式,当apt开始更新数据库的时候会先读取列表中的第一个源地址,比如:
deb mirrors.geekbone.org/debian sid main contrib non-free
完成之后,它会把main,contrib,non-free这三个目录下面的软件包的信息存入数据库,今后安装软件的时候如果目标软件包在这个三个目录下的话,apt就会连接到geekbone去下载需要的软件包。知道这一点之后,我们来个小的改动,再增加两个新行。

deb mirrors.geekbone.org/debian sid main
deb ftp.linuxforum.net/debian sid contrib
deb debian.linux.org.tw/debian sid non-free

这样改动的结果就是,可用软件包的数量并没有变(在此假设三个源的软件包信息是相同的),变化的只是main,contrib,non-free三个目录下的软件包被分散到了三个不同的服务器上了。当重新更新软件包列表之后再安装软件的时候,如果一个软件包所依赖的其他软件包不属于同一个服务器的话,apt 就会开启两个或者更多的进程来同时下载,这样我们下载加速的目的就达到了。

当然,这里我们假设的情况是不同的服务器的软件包信息是相同的,而且要安装的软件所需要的包分别属于不同的服务器下不同的目录,只有满足这两点加速才有可能实现。

如果安装某个软件包是出现版本不匹配的情况,那有可能是服务器的更新情况不同步,可以改一下。如果要安装的所有软件包都属于main的话,那这个方法也会无效,就只能希望main所在的服务器速度快一点了。

IT界有句名言--为了安全,不要把鸡蛋都放在同一个篮子里。这里我们借用一下--为了速度,不要把源服务器列表都指向同一个目标。

以下是我现在的sources.list供大家参考:

deb mirrors.geekbone.org/debian sid main
deb ftp.hk.debian.org/debian sid non-free
deb debian.linux.org.tw/debian sid contrib
deb mirrors.geekbone.org/debian-non-US sarge/non-US main
deb ftp.hk.debian.org/debian-non-US sarge/non-US non-free
deb debian.linux.org.tw/debian-non-US/ sarge/non-US contrib
deb ftp.linuxforum.net/debian proposed-updates main contrib non-free
deb security.debian.org/ stable/updates main contrib non-free

≡≡≡≡≡ 评论(共   条) 我要评论
{CommentAuthor}{CommentTime} 发表评论 | {CommentUrl}
{CommentContent}

留言回复(带*号为必填)Post Comment(* must be)

作 者Author:

 主 页Homepage:

 邮 箱Email:

内 容Content:

 选 项option:使用表情Enable Smile转换UBBEnable UBB记住我Remember me

 验证码Verify Code:验证码

 

 

返回顶部





Powered by 5DBLog Design by JKF