apt 索引存储在哪里?可以删除吗?

apt 索引存储在哪里?可以删除吗?

apt-get update在安装一些软件包之前执行了以下操作:

Get:1 http://archive.ubuntu.com trusty Release.gpg [933 B]
Get:2 http://archive.ubuntu.com trusty-updates Release.gpg [933 B]
...
...
Get:23 http://archive.ubuntu.com trusty-security/restricted amd64 Packages [40 B]
Get:24 http://archive.ubuntu.com trusty-security/universe amd64 Packages [58.0 kB]
Fetched 20.0 MB in 2min 57s (113 kB/s)

如上所示,apt-get已获取 20.0 MB 的索引。在和apt-get update之后apt-get install mypackage,我想清理所有缓存以尽量减少使用的磁盘空间。

问题 1:apt 包索引存储在文件系统的什么位置?

问题2:如何安全地删除索引?

答案1

注意:以下所有内容均在 Ubuntu 14.04 上测试。

前面:不要删除任何目录,只删除文件里面目录。还要确保没有运行与 apt 相关的进程(或者可以自动启动期间你的清理)。

/var/缓存/apt/档案/*

/var/cache/apt/archives可以使用 清理中的文件(即下载的包) apt-get clean。这是另一个答案中链接的方法。

/var/缓存/apt/*.bin

只要您确保没有与 apt 相关的进程正在运行索引文件/var/cache/apt/pkgcache.bin/var/cache/apt/pkgcache.bin也可以将其清除。除非它们是剩余的,否则不应该有任何其他匹配的文件/var/cache/apt/*.bin,但只要没有与 apt 相关的进程正在运行,您就可以使用该模式删除它们。

下次运行apt-get update将重新生成这些文件。

很遗憾这个问题询问索引文件已被关闭,因为重复了,尽管它根本不是重复的。

/var/lib/apt/列表/*

您还可以删除缓存的包列表,但可能希望保持不变的锁定文件。

lock是的,只要没有与 apt 相关的进程正在运行或在清理期间启动,该文件也可以被删除。但我已经提到过一两次了。


基本原理

我想知道是否可以创建一个模板档案来用于创建容器(LXC、Docker)。在这种情况下,您通常希望在打包之前尽可能地精简系统。

事实证明删除这些文件是无害的。在我的特定情况下,我可以确定没有与 apt 相关的进程正在运行,因为“系统”——在该chroot部分完成后——实际上并没有运行。

可能与 apt 相关的进程

cron-apt,但unattended-upgrades类似的还有您不想在清理期间运行的 apt 相关进程的示例。

答案2

查看 /var/cache/apt 文件夹。索引文件和下载的软件包文件都位于此处。要进行清理,您可以检查一个较旧的问题线索在这里

相关内容