可以将apt仓库镜像吗?

我是Case Western Reserve University的一名学生,Ubuntu服务器到我的位置的带宽经常非常糟糕(每秒只有几百字节)。我和几个朋友希望能够下载软件包一次,并在我们校园内的其他Ubuntu安装中进行缓存。为了实现这一点,我们需要设置自己的APT仓库,或者在某个我们可以指向的缓存(如squid)服务器上设置。
设置这样一个镜像是否很困难?如何完成这个过程?

连1k/s都没有?我建议你向系统管理员投诉。就连星巴克的免费wifi都能达到150k/s。 - Gödel
1@Gödel:实际连接速度要快得多——我几乎在任何地方都能以1MB/s的速度下载,除了与aptitude相关的内容。这个区域的镜像似乎非常慢。 - Billy ONeal
1我也在CWRU,发现默认镜像的速度不太理想。你试过使用Internet2上的镜像吗,比如mirror.anl.gov?我经常能够从这样的镜像获得超过1MB/s的速度。 - Eric Perko
@Eric:啊,换镜像似乎确实解决了问题。也许“选择最佳镜像”更关注延迟而不是带宽。谢谢! - Billy ONeal
2个回答

你可能想使用apt-proxy而不是完整的镜像,因为这样设置起来需要的空间和时间会大大减少。

https://help.ubuntu.com/community/AptProxy

你需要更新存储库列表,以便任何想要使用你的代理的人。

有几种方法可以镜像存储库或缓存软件包下载。最佳解决方案取决于使用人数和已有的基础设施。
例如,许多大学已经拥有本地软件镜像,这种情况下最简单的解决方案可能是将Ubuntu添加到该镜像中。 ;)
如果您的大学已经有代理服务器,可能可以使用它(也许需要一些自定义设置来处理存储库)。
当您想要镜像整个或部分官方存储库(和/或其他存储库)时,可以使用类似apt-mirror、debmirror、debpartial-mirror、mirrorkit或ubumirror的工具。镜像整个存储库可能会拉取很多从未被使用过的软件包,因此如果带宽真的是一个问题(即使在夜间),只镜像热门软件包可能会很有用...
当您只想缓存已使用的软件包时,可以使用apt-cacher、apt-cacher-ng或apt-p2p,或者像Squid这样的代理服务器。
一个使用本地镜像(与缓存相比)的优点是安装/升级始终会很快(对于镜像上可用的软件包),而使用缓存时,第一个需要软件包的人必须等待直到它被下载。您还可以配置镜像在夜间更新,这样下载软件包就会在(几乎)没有其他人使用互联网上行时进行。
另一方面,使用缓存的优点是您只会下载所需的软件包,永远不会超过这个范围。