为什么“apt”不再存储下载的软件包?

为什么“apt”不再存储下载的软件包?

我以前习惯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";

相关内容