我想debootstrap
多次运行和创建发行版而不必不断下载软件包。
使用apt-cacher-ng
或--foreign
debootstrap 中的选项不能完全离线工作(例如,如果我在火车上执行此操作),因为 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