软件仓库和 CD 仓库是两个独立的组成部分(它们甚至有单独的 Launchpad 页面:
cdmirrors 和
archivemirrors)。因此,镜像它们是两个不同的任务。另外,虽然各种版本在 CD 仓库中有不同的文件夹,但它们共享一个软件仓库。因此,您可以根据不同版本选择性地镜像图像,但无法镜像软件。对于软件仓库,您可以根据以下条件进行选择性镜像:
- 发行版(`trusty`、`precise` 等)
- 架构(`amd64`、`i386` 等)
- 软件包类型(二进制 [`deb`] 或源码 [`deb-src`])
- 渠道(`trusty`、`trusty-updates`、`trusty-backports` 等)
- 部分(`main`、`multiverse` 等)
要镜像软件仓库,请使用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
line,以便过滤掉存储库中不再可用的软件包进行删除。
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
替换为您喜欢的镜像。