我正在docker(Docker version 18.09.7, build 2d0083d
)上运行ubuntu:16.04:
docker run -it ubuntu:16.04
并且我正在运行apt -o APT::Keep-Downloaded-Packages=true install curl
应该安装卷发,而不要从/var/cache/apt/archives
中删除debs,但这不会发生。该软件包已安装,但deb未保存在缓存中(或者先保存然后删除)。
我在主机上尝试过:
lsb_release -a
LSB Version: core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:printing-9.20160110ubuntu0.2-amd64:printing-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
并且它按预期工作(即保存了程序包)。
检查了容器和主机中的apt版本。两者都运行相同的apt-apt 1.2.32 (amd64)
主机和容器之间可能有什么不同之处,可能会导致忽略APT option
?
区别是这个。我安装的Docker容器在/etc/apt/apt.conf.d
内部有一个名为docker-clean
的配置文件,其中包含3行:
DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; }; │
APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; }; │
Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";
此选项似乎已覆盖我的APT::Keep-Downloaded-Packages=true
。但是,删除前两行并重新使用APT::Keep-Downloaded-Packages=true
之后,deb保留在存档目录中