拥有本地存储库非常有用。可以使用rsync
创建存储库镜像,但这会导致全部正在下载的版本,甚至是较旧的版本,其中可能包含不需要的架构的文件。
apt-mirror
允许选择性地选择存储库的各个部分。mirrorkit
为 apt-mirror 提供前端。
为 Ubuntu 档案的选定部分创建本地存储库镜像的最佳方法是什么?
例如,有人可能希望包括:
主版本、受限版本、宇宙版本、多元版本、全部 Ubuntu 和 Lubuntu,但不包括其他衍生版本,例如 Kubuntu 和 Xubuntu。
仅 AMD64 和 i386 但排除其他架构。
仅限 Trusty Tahr,不包括 Precise Penguin 或 Utopic Unicorn。
人们可能希望配置该过程,以便它从本地镜像而不是主档案下载。
如何使用apt-mirror
和mirrorkit
为选定的架构、版本或 Ubuntu 变体创建本地存储库?
答案1
CD 存储库和软件存储库是两个不同的组件(它们甚至有单独的 Launchpad 页面:镜像文件和存档镜像)。因此,镜像它们是两个不同的任务。此外,虽然各种版本在 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
。软件包安装的配置文件有几个注释掉的选项,列出了它们的默认值。如果您愿意,可以取消注释并更改它们。
要镜像存储库,您需要添加一行,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 存储库欲了解更多详细信息/说明,请点击此处。