为什么在
在什么情况下会将 deb 文件下载到该目录中?
/var/cache/apt/archives/
目录下会有 deb 文件?在什么情况下会将 deb 文件下载到该目录中?
/var/cache/apt/archives/
目录下会有 deb 文件?在Ubuntu(以及Ubuntu基于的Debian)中,有两个通常被称为“软件包管理器”的东西:dpkg
和APT。
dpkg
是一个程序,用于安装和删除软件包,并维护已安装软件包及其版本的数据库。当它安装软件包时,它会从.deb
归档文件中进行。这些归档文件是软件包分发的方式。
dpkg
不仅会复制(或删除)文件并更新其数据库 - 它还将运行安装脚本和卸载脚本。它可能被认为是相当复杂的。但它不会做的事情是查找和下载软件包。
APT会查找和下载软件包,并适当地运行dpkg
来安装、升级和删除它们。APT实际上不是任何单一的软件,尽管有一个apt 软件包提供了它的基本部分。
apt-get
,也由 apt apt-get
工具安装chocolate-doom $ sudo apt-get install chocolate-doom
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2 libsdl1.2debian
Recommended packages:
doom-engine
The following NEW packages will be installed:
chocolate-doom doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2
libsdl1.2debian
0 upgraded, 6 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/2,846 kB of archives.
After this operation, 8,626 kB of additional disk space will be used.
apt-get
,aptitude
,软件中心,Synaptic,软件更新器/更新管理器或任何其他软件包管理工具从配置的软件源下载软件包(以及它们所依赖的其他软件包)并安装它们时,下载的软件包(即从中安装它们的.deb归档文件)存储在/var/cache/apt/archives
目录中。$ apt-get -s autoclean
NOTE: This is only a simulation!
apt-get needs root privileges for real execution.
Keep also in mind that locking is deactivated,
so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Del libubsan0 4.9.1-15ubuntu1 [83.7 kB]
Del cups-server-common 1.7.5-3 [519 kB]
Del python2.7 2.7.8-9 [205 kB]
Del g++-4.9 4.9.1-15ubuntu1 [17.4 MB]
Del libstdc++-4.9-dev 4.9.1-15ubuntu1 [1,121 kB]
....
Get:13 http://us.archive.ubuntu.com utopic/main i386 Packages [1,341 kB]
/var/lib/apt/list
目录中找到Packages文件和其他类似文件。存储在那里的副本具有诸如us.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages
之类的区分名称,因为可能有许多这样的文件。apt-cache
。它查询软件包数据库,但不对系统进行任何更改或下载任何文件。
dpkg
)功能无关的特定数据,它们存储在/var/cache/software-center
中。xapian
子文件夹:ek@Ilex:/var/cache/software-center/xapian$ ls
flintlock postlist.baseB record.baseB spelling.baseB termlist.baseB
iamchert postlist.DB record.DB spelling.DB termlist.DB
postlist.baseA record.baseA spelling.baseA termlist.baseA
一些额外的与APT系统配合使用的实用程序在其操作过程中会下载和存储文件。Ubuntu默认未安装apt-file
,但可以从apt-file 包中安装。
apt-file
存储有关哪些文件由哪些软件包提供的信息(即使对于未本地安装的软件包也是如此)。它通过下载压缩的Contents
文件来获取有关软件包内容的信息:
$ sudo apt-file update
Downloading complete file http://us.archive.ubuntu.com/ubuntu/dists/utopic/Contents-amd64.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 29.6M 100 29.6M 0 0 856k 0 0:00:35 0:00:35 --:--:-- 832k
apt-file update
时(如上所示),这些文件将被下载到/var/cache/apt/apt-file
目录中。为了发现这一点,我运行了以下命令:$ sudo updatedb
$ locate Contents-amd64
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic-proposed_Contents-amd64.gz
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic_Contents-amd64.gz
apt-cache
或者apt-file
也会下载很多东西吗?如果是的话,它们在哪里? - Timapt-cache
实际上不会检查您的远程仓库。本地数据库是由其他程序更新的,例如当您运行sudo apt-get update
或者通过软件中心和软件更新/更新管理器自动更新时。运行apt-cache
的结果当然会受到对本地软件包数据库所做更改的影响,但apt-cache
本身不会进行这些更改。 - Eliah Kagan/var/cache/apt/archives
目录下的.deb
文件吗? - Tim/var/cache/apt/archives
中的缓存deb
文件(有时还包括/var/cache/apt/archives/partial
中未完成的下载)可能占用了相当大的空间。你可以使用sudo apt-get clean
安全地删除它们。当然,这可能或可能不足以释放你所需的空间。du -sh /var/cache/apt/archives
命令将显示当前被缓存的deb
文件占用了多少空间。 - Eliah Kagan$ sudo du /var/cache/apt/archives -h
时,你会得到4.0K /var/cache/apt/archives/partial
和383M /var/cache/apt/archives
。你的回答中没有提到partial目录?对于像我这样的小型Ubuntu安装来说,383MB似乎有点大? - WinEunuuchs2Unix