apt-get clean 不会删除 /var/lib/apt/lists 中的 .lz4 文件

ken*_*orb 0 apt docker 16.04

我想删除.lz4由 Apt 生成的文件,但是apt-get clean没有完成这项工作。它会删除partialdir中的文件,但不会删除/var/lib/apt/lists.

# apt-get -s clean
Del /var/cache/apt/archives/* /var/cache/apt/archives/partial/*
Del /var/lib/apt/lists/partial/*
Del  
# apt-get clean
# find /var/lib/apt/lists -type f -size +10M -ls
  3685776  15304 -rw-r--r--   1 root     root     15667682 Apr 21  2016 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-i386_Packages.lz4
  3685775  15340 -rw-r--r--   1 root     root     15707199 Apr 21  2016 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-amd64_Packages.lz4
Run Code Online (Sandbox Code Playgroud)

如何使用 Apt 命令清理这些文件?

我想删除它们,因此配置后我的 Docker 容器更小。


使用 Docker 重现步骤:

$ docker run ubuntu:xenial -it bash
# apt-get update
# apt-get -s clean
Del /var/cache/apt/archives/* /var/cache/apt/archives/partial/*
Del /var/lib/apt/lists/partial/*
# apt-get clean
# find /var/lib/apt/lists -type f -size +1M -ls
  1182038  15340 -rw-r--r--   1 root     root     15707199 Apr 21  2016 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-amd64_Packages.lz4
  1182032  15596 -rw-r--r--   1 root     root     15968301 Apr 21  2016 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_xenial_universe_source_Sources.lz4
...
Run Code Online (Sandbox Code Playgroud)

Cha*_*Rex 5

如何删除这些文件

删除这些文件不是一个好主意,除非您真的因临时磁盘空间而受到伤害,或者您不会再次更新系统软件。

如果您确定没有发生 APT 活动,包括您在安装 Ubuntu 时可能设置的自动安全更新或自动更新警告窗口,您可以按如下方式删除它们:

sudo rm -r /var/lib/apt/lists
Run Code Online (Sandbox Code Playgroud)

下次运行时sudo apt-get update,将自动为您重新创建该目录的结构。

为什么不sudo apt-get clean删除这些文件?

sudo apt-get clean不会删除任何文件/var/lib/apt/lists,除了/var/lib/apt/lists/partial. 正如您指出的那样,这可以看出sudo apt-get -s clean

$ sudo apt-get -s clean
Del /var/cache/apt/archives/* /var/cache/apt/archives/partial/*
Del /var/lib/apt/lists/partial/*
Del /var/cache/apt/pkgcache.bin /var/cache/apt/srcpkgcache.bin
Run Code Online (Sandbox Code Playgroud)

请注意,/var/lib/apt/lists/*未列出删除。

这样做是因为它删除的文件不会阻止任何 APT 命令成功运行。当必须重新下载内容时,它可能会减慢它们的速度。

删除/var/lib/apt/lists/*实际上导致有错误sudo apt-get install,并apt-cache直到您运行sudo apt-get update一次。它还sudo apt-get update需要更长的时间,因为它不能跳过下载未更改的文件。