如何使用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-mirror
和mirrorkit
为选定的体系结构,发行版或Ubuntu变体创建本地存储库?
CD存储库和软件存储库是两个不同的组件(它们甚至具有单独的Launchpad页面: cdmirrors和archivemirrors )。 因此,镜像它们是两个截然不同的任务。 此外,虽然各种口味在CD存储库上具有不同的文件夹,但它们共享软件存储库。 因此,您可以选择性地镜像每个风格的图像,但不是软件。 对于软件存储库,您可以根据以下内容选择性镜像:
- 发布(
trusty
,precise
等) - 架构(
amd64
,i386
等) - 包类型(二进制[
deb
] vs source [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
行,以便过滤存储库中不再可用的包以进行删除:
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存储库,以获取更多详细信息/说明。