我以前习惯apt
将下载的包存储在其中/var/cache/apt/archives/
,但现在不再这样做了,我不知道为什么。
依我之见,配置是这样设置的:
# apt-config dump | grep -i cache
Dir::Cache "var/cache/apt";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Binary::apt::APT::Cache "";
Binary::apt::APT::Cache::Show "";
Binary::apt::APT::Cache::Show::Version "2";
Binary::apt::APT::Cache::AllVersions "0";
Binary::apt::APT::Cache::ShowVirtuals "1";
Binary::apt::APT::Cache::Search "";
Binary::apt::APT::Cache::Search::Version "2";
Binary::apt::APT::Cache::ShowDependencyType "1";
Binary::apt::APT::Cache::ShowVersion "1";
虽然我对这些东西不太了解Binary::*
。
它似乎与任何权限问题都无关,因为/var/cache/apt/archives/
在使用时会重新创建apt install <arbitrary-package>
。
有什么提示吗?
答案1
有一个专用设置对于 2016 年出现的这个(包括 Debian 9 稳定版本):
apt (1.2~exp1) experimental; urgency=medium [ Automatic removal of debs after install ] After packages are successfully installed by apt(8), the corresponding .deb package files will be removed from the /var/cache/apt/archives cache directory. This can be changed by setting the apt configuration option "Binary::apt::APT::Keep-Downloaded-Packages" to "true". E.g: # echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' \ > /etc/apt/apt.conf.d/01keep-debs Please note that the behavior of apt-get is unchanged. The downloaded debs will be kept in the cache directory after they are installed. To enable the behavior for other tools, you can set "APT::Keep-Downloaded-Packages" to false.
因此有两个切换开关:
命令apt
特定的切换:
Binary::apt::APT::Keep-Downloaded-Packages
可以将其设置为 来"true"
更改apt
的默认值。
以及全局切换:
APT::Keep-Downloaded-Packages
可以将其设置为"false"
更改其他工具apt-get
的默认值。
因此,例如,如果您想要完全反转 Debian 10 中的当前行为apt
(“不保留”为“保留”)和apt-get
(“保留”为“不保留”),您可以在某处添加以下内容/etc/apt/apt.conf.d/
:
Binary::apt::APT::Keep-Downloaded-Packages "true";
APT::Keep-Downloaded-Packages "false";
注意:如果文件已经存在(例如:之前使用 进行下载--download-only
),则设置可能不会产生任何效果,文件将保留。这可能取决于apt
的版本。至少当命令下载包时,行为是一致的和安装它。
答案2
小黄鸭问有效。在写最后两段时,我意识到这apt install
与在这种情况下的工作方式不同apt-get install
。
的手册页apt
解释了这一点(重点是我的):
apt(8) 的所有功能在专用的 APT 工具中也可用,例如 apt-get(8) 和 apt-cache(8)。apt(8) 只是改变默认一些选项的值(参见 apt.conf(5),特别是二进制范围)。
BINARY SPECIFIC CONFIGURATION
(另请参阅中的部分man apt.conf
。)
不幸的是,尽管我将这两行添加到文件中,但行为并没有改变/etc/apt/apt.conf.d
:
Binary::apt::APT::Cache "/var/cache/apt";
Binary::apt::APT::Cache::Archives "archives";