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

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

拥有本地存储库非常有用。可以使用rsync创建存储库镜像,但这会导致全部正在下载的版本,甚至是较旧的版本,其中可能包含不需要的架构的文件。

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

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

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

  • 主版本、受限版本、宇宙版本、多元版本、全部 Ubuntu 和 Lubuntu,但不包括其他衍生版本,例如 Kubuntu 和 Xubuntu。

  • 仅 AMD64 和 i386 但排除其他架构。

  • 仅限 Trusty Tahr,不包括 Precise Penguin 或 Utopic Unicorn。

人们可能希望配置该过程,以便它从本地镜像而不是主档案下载。

如何使用apt-mirrormirrorkit为选定的架构、版本或 Ubuntu 变体创建本地存储库?

答案1

CD 存储库和软件存储库是两个不同的组件(它们甚至有单独的 Launchpad 页面:镜像文件存档镜像)。因此,镜像它们是两个不同的任务。此外,虽然各种版本在 CD 存储库中有不同的文件夹,但它们共享一个软件存储库。因此,您可以有选择地镜像每个版本的图像,但不能镜像软件。对于软件存储库,您可以根据以下内容有选择地进行镜像:

  • 释放(trustyprecise等)
  • 建筑(amd64i386等)
  • 软件包类型(二进制 [ deb] 与 源 [ deb-src])
  • 渠道(、、trusty等)trusty-updatestrusty-backports
  • 部分(mainmultiverse等)

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

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

要镜像存储库,您需要添加一行,mirror.list就像下面这样sources.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)。您还应该添加一个 cron 作业以供运行clean.sh(我每周运行一次)。

当然,你可以http://us.archive.ubuntu.com./ubuntu用你喜欢的任何镜子来替换。

答案2

对于那些空间有限或所在国家网费过高的用户,我推荐使用 apt-cacher。

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

使用 Apt-Mirror 和 Apt-Cacher 创建本地 Ubuntu 存储库欲了解更多详细信息/说明,请点击此处。

相关内容