如何使用带有 debootstrap 的缓存代理?

如何使用带有 debootstrap 的缓存代理?

我想debootstrap多次运行和创建发行版而不必不断下载软件包。

使用apt-cacher-ng--foreigndebootstrap 中的选项不能完全离线工作(例如,如果我在火车上执行此操作),因为 debootstrap 仍会尝试连接到互联网以从远程存储库获取 InRelease 文件。

似乎应该能够配置 squid(或其他缓存代理)来缓存某些 URL,以便当我离线时我仍然可以运行该过程。

我应该安装什么以及如何配置它以实现这一点?

答案1

您不需要代理来解决这个问题。debootstrap有一个命令行标志--cache-dir,它提供相同的功能。不确定在提出这个问题时这是否可用。

debootstrap --help
Usage: debootstrap [OPTION]... <suite> <target> [<mirror> [<script>]]
Bootstrap a Debian base system into a target directory.
    ...
    --cache-dir=DIR        Use specified directory as package cache directory
    ...

答案2

如果您apt install squid-deb-proxy可以离线运行 debootstrap(甚至InRelease文件)。

但是,如果您想节省带宽并在再次上线后继续使用离线文件,则需要稍微修改它。

该文件中有绝对路径squid-deb-proxy.conf,因此您需要在项目中复制它并进行修改。

/etc找到对和的引用/var并修改它们为相对的,以将其与系统文件分开。

为了在线时仍然使用代理,您需要将其添加到 conf 文件中。

#Use cached values when offline
offline_mode on

然后你可以像这样启动它:

mkdir -p squid/var/log/squid-deb-proxy
mkdir -p squid/var/run/

echo "Starting an instance of squid using the working dir for caches and logs instead of the system dirs"
squid -Nf squid/squid-deb-proxy.conf

那么在你开始之前debootstrap

#Use a caching proxy to save bandwidth
export http_proxy=http://127.0.0.1:8000

相关内容