如何使用apt-mirror和mirrorkit创建本地存储库?

拥有本地存储库非常有用。 可以使用rsync创建存储库镜像,但这会导致所有版本都被下载,甚至是旧版本,并且会包含可能不需要的体系结构的文件。

apt-mirror允许选择性地选择存储库的一部分。 mirrorkit为apt-mirror提供了一个前端。

为Ubuntu存档的选定部分创建本地存储库镜像的最佳方法是什么?

例如,人们可能希望包括:

  • Main,Restricted,Universe,Multiverse,All Ubuntu和Lubuntu,但不包括其他衍生品,如Kubuntu和Xubuntu。

  • 仅限AMD64和i386,但不包括其他架构。

  • 只有Trusty Tahr,但不是Precise Penguin或Utopic Unicorn。

有人可能希望配置进程,以便从本地镜像而不是主存档下载。

如何使用apt-mirrormirrorkit为选定的体系结构,发行版或Ubuntu变体创建本地存储库?

CD存储库和软件存储库是两个不同的组件(它们甚至具有单独的Launchpad页面: cdmirrors和archivemirrors )。 因此,镜像它们是两个截然不同的任务。 此外,虽然各种口味在CD存储库上具有不同的文件夹,但它们共享软件存储库。 因此,您可以选择性地镜像每个风格的图像,但不是软件。 对于软件存储库,您可以根据以下内容选择性镜像:

  • 发布( trustyprecise等)
  • 架构( amd64i386等)
  • 包类型(二进制[ deb ] vs source [ deb-src ])
  • 渠道( trustytrusty-updatestrusty-backports等)
  • 部分( mainmultiverse等)

要镜像软件存储库,请使用apt-mirror

apt-mirror使用/etc/apt/mirror.list配置。 它的格式与sources.list非常相似。 软件包安装的配置文件有一些注释掉的选项,列出了它们的默认值。 如果您愿意,可以取消注释并更改它们。

要镜像存储库,您需要像对sources.list一样向mirror.list添加一行:

 deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe 

默认情况下仅镜像主机的体系结构,因此如果您使用的是64位Ubuntu,则只会镜像amd64 。 您需要添加表单的另一行:

 deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe 

对于源包:

 deb-src http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe 

如果你正在寻找一个相当完整的镜像,这些线将是最小的(我还建议 – -updates频道):

 deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe deb http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe deb-i386 http://us.archive.ubuntu.com/ubuntu trusty main multiverse restricted universe deb-i386 http://us.archive.ubuntu.com/ubuntu trusty-security main multiverse restricted universe 

最后,您需要添加一个clean行,以便过滤存储库中不再可用的包以进行删除:

 clean http://us.archive.ubuntu.com/ubuntu 

假设您的变量是(默认值):

 set base_path /var/spool/apt-mirror set mirror_path $base_path/mirror set skel_path $base_path/skel set var_path $base_path/var set cleanscript $var_path/clean.sh 

然后:

  • 存储库将镜像到$mirror_path/parent-hostname/directory (所以/var/spool/apt-mirror/mirror/us.archive.ubuntu.com/ubuntu
  • clean.sh (将是一组用于删除过时软件包和目录的rm命令)将是/var/spool/apt-mirror/var/clean.sh
  • 日志将转到/var/spool/apt-mirror/var

apt-mirror软件包安装了一个cron作业( /etc/cron.d/apt-mirror ),你应该编辑它来启用(通过取消注释包含/usr/bin/apt-mirror )。 您还应该添加一个用于运行clean.sh的cron作业(我每周运行一次)。

当然,您应该用您喜欢的任何镜像替换http://us.archive.ubuntu.com./ubuntu

我推荐apt-cacher用于那些空间有限的人或者他们国家的网络价格过高的人。

据称,apt-mirror对于你想要的发行版的每种风味(32/64位)至少需要15GB。 apt-cacher只使用您安装的软件包。

阅读使用Apt-Mirror和Apt-Cacher创建本地Ubuntu存储库,以获取更多详细信息/说明。