清除 apt-get 列表

Dak*_*ron 48 debian apt package-management

我正在为基于 Debian 的嵌入式 Linux 构建映像。我apt-get update之前确实在我想用作该图像基础的设备上使用过,因此下面的列表/var/lib/apt/lists非常大(大小接近 100 MB)。

我想保留apt-get功能(所以我不想删除 apt 存储库)但我想释放这些列表中使用的空间(列表几乎是图像大小的两倍)。

有谁知道这是怎么做到的吗?我可以删除下面的文件/var/lib/apt/lists吗?

cha*_*aos 64

你可以只使用:

rm /var/lib/apt/lists/*
Run Code Online (Sandbox Code Playgroud)

这将删除包列表。不会删除任何存储库,它们是在 .config 文件中的配置文件中配置的/etc/apt/sources.list。所有可能发生的事情是,apt-cache除非您更新了包列表,否则诸如此类的工具无法获取包信息。也apt-get install将失败E: Unable to locate package <package>,因为没有关于包的信息。

然后运行:

apt-get update
Run Code Online (Sandbox Code Playgroud)

重写这些列表,命令将再次起作用。

无论如何,建议apt-get update在安装任何东西之前运行。

  • 显然目录不能为空,请在 rm 之后添加 -rf ,如下所示 ```rm -rf /var/lib/apt/lists/*``` (5认同)

Tob*_*ght 6

这些列表是关于可用内容的知识,因此如果您删除它们,您将无法安装任何东西——这完全等同于从源列表中删除存储库(您说您不想这样做)。

一种选择是您可以压缩列表,并记住在您下一步之前解压缩它们update

我经常做的事情(特别是当我想尝试额外的源时)是创建一个目录/etc/apt/sources.available并为分发添加条目。然后我可以通过创建符号链接轻松启用任何子集,/etc/apt/sources.list.d并通过删除这些符号链接来禁用。

使用空的源列表,您可以apt-get update- 这应该清除您的/var/lib/apt/lists. 然后将适当的源链接回/etc/apt/sources.list.d,但update直到您真正打算使用它们时才链接。