我想知道是否有办法配置 APT 来下载包的所有依赖项(与依赖螺旋一样深)并将它们缓存在 中/var/cache/apt/archives
。
编辑:
似乎使用apt
而不是apt-get
会导致不下载缓存。有人可以确认这一点吗?
我尝试过:
我尝试安装texlive-full
并--install-recommends
发现有 155 个包需要安装,但 APT 仅缓存了texlive-full.deb
。
可能的解决方案:
要求 apt 安装所有这 155 个包,这将导致它们全部被缓存。但这只对深度为一级的依赖关系有效。
使用
apt-rdepends
:apt-get --print-uris --yes -d --reinstall install "$1" | grep "http://" | awk '{print$1}' | xargs -I'{}' echo {} | tee "$2"
这将把给定包的所有依赖项的 URL($1
)吐出到一个文件($2
),然后可以将其输入到wget
。
虽然 2 是最可行的解决方案,但它需要下载两次软件包,从而浪费我的带宽。而且我不想使用 创建本地 apt-mirror apt-mirror
。
答案1
这可能是最简单的方法:
apt download $(apt-rdepends <package>|grep -v "^ ")