如何创建具有子存储库main, non-free
并key.gpg
为其生成的本地存储库?
我已经准备好了文件夹/srv/dists/buster
答案1
请查看这个相关的 Stack Exchange 帖子。如果您认为它适用,我们可以将此问题标记为重复。如果没有,你可以按照这个答案:
设置debmirror
通过使用该工具debmirror
、一个 cronjob 和一个网络服务器,这个任务非常简单。
我将参考这个第三方维基对于这个答案。我建议你看看联机帮助页,以及您在此答案中不熟悉的工具的任何其他联机帮助页。
安装
debmirror
并debian-keyring
。apt install debmirror debian-keyring
为镜像创建一个目录。 (就你而言,
/srv/dists/buster
)创建镜像用户来运行同步脚本并维护镜像。
groupadd mirror useradd -d /srv/dists/buster -c "Debmirror" -g mirror mirror chown -R mirror.mirror /srv/dists/buster
设置 gpg 密钥。请确保您了解,如果出现问题,那是因为官方密钥环已更新并且新密钥在本地丢失。当您遇到此类问题时,请采取必要的步骤来更新密钥。请在此处查看本指南,了解有关如何修复 gpg 密钥的更多信息。
# Become the mirror user su - mirror # Import the keys gpg --no-default-keyring --keyring trustedkeys.gpg --import /usr/share/keyrings/debian-archive-keyring.gpg # Periodically you will update keys, just like this: (Hint: its the same as before.) gpg --no-default-keyring --keyring trustedkeys.gpg --import /usr/share/keyrings/debian-archive-keyring.gpg #Verify that you have the right keyrings for your system. (Hint: they should mention Buster. Information on the Debian keyrings can be found here: https://ftp-master.debian.org/keys.html) gpg --list-keys --keyring trustedkeys.gpg
如果您丢失了,
~/.gnupg/trustedkeys.gpg
可以用以下命令复制它:cp /usr/share/keyrings/debian-archive-keyring.gpg ~/.gnupg/trustedkeys.gpg
设置一个 cronjob 来同步镜像。
#!/bin/bash # sourcehost: choose a mirror in your proximity! HOST=ftp.us.debian.org; # destination directory DEST=/srv/dists/buster/localmirror # Debian version(s) to mirror DIST=buster # architecture, use what is applicable here. ARCH=amd64 # log timestamp logger -t mirror[$$] updating Debian mirror su mirror -c \ "debmirror ${DEST} \ --nosource \ --host=${HOST} \ --root=/localmirror \ --dist=${DIST} \ --section=main,non-free \ --i18n \ --arch=${ARCH} \ --passive --cleanup \ $VERBOSE" logger -t mirror[$$] finished updating Debian mirror
Cronjob 文件应如下所示:
#Edit /etc/cron.d/local-debmirror: # debmirror 38 04 * * 1-5 root /root/scripts/mirror
通过网络服务器使镜像可用。我会把你需要的或最有效的留给你。我喜欢 Nginx 和 Flask。我知道 python 有一个 oneliner 来启动网站,但如果您更熟悉 apache 或者已经有一些 Web 服务器的基础设施或策略,请使用它。无论您需要高可用性、安全性还是家庭实验室/简单网络的快速功能,请使用最适合您需求的解决方案。我链接的 wiki 提供了您可以使用的解决方案。
添加到您的
sources.list
镜子。对于要从镜像拉取的 Debian 客户端服务器,您需要编辑 Debian 客户端/etc/apt/sources.list
文件以引用本地镜像。不要忘记运行apt update
更新 apt。deb http://debmirror.example.com/localmirror/ buster main contrib non-free
请注意您引用的目录。它应该是正在同步镜像的根目录。根据您的情况
/srv/dists/buster/localmirror
,但最适合您的。它只需要保持一致。
综上所述
在执行此操作之前,请仔细阅读我提供的每个链接。请记住,这个能用于一台 Debian 服务器同步镜像、运行 Web 服务器来提供内容并更新自身,但是此解决方案更适合运行其他 Debian 实例可以更新的本地镜像。
请查看Debian 官方维基有关镜像的信息。
如果您有任何疑问或我的帖子有任何错误,请发表评论,我可以编辑此答案。
祝你好运!