我正在为基于 Debian 的嵌入式 Linux 构建镜像。我apt-get update
之前确实在想要用作该图像基础的设备上使用过,因此下面的列表/var/lib/apt/lists
非常大(大小几乎为 100 MB)。
我想保留apt-get
功能(所以我不想删除 apt 存储库),但我想释放这些列表中用完的空间(列表几乎是图像大小的两倍)。
有谁知道这是怎么做到的吗?我可以直接删除下面的文件吗/var/lib/apt/lists
?
答案1
你可以只使用:
rm -rf /var/lib/apt/lists/*
这将删除包列表。不会删除任何存储库,它们在/etc/apt/sources.list
.可能发生的情况是,apt-cache
除非您更新了软件包列表,否则此类工具无法获取软件包信息。也apt-get install
将失败并显示E: Unable to locate package <package>
,因为没有有关该包的信息。
然后运行:
apt-get update
重写这些列表,命令将再次起作用。
无论如何,建议apt-get update
在安装任何东西之前运行。
答案2
这些列表是关于可用内容的知识,因此如果您删除它们,您将无法安装任何东西 - 这完全相当于从源列表中删除存储库(您说您不想这样做)。
一种选择是您可以压缩列表,并记住在下一步之前解压缩它们update
。
我经常做的事情(特别是当我想尝试额外的源时)是创建一个目录/etc/apt/sources.available
并添加发行版的条目。然后,我可以通过创建符号链接轻松启用任何子集/etc/apt/sources.list.d
,并通过删除这些符号链接来禁用它们。
使用空源列表,您可以apt-get update
- 这应该清除您的/var/lib/apt/lists
.然后将适当的源链接回,但直到您真正打算使用它们时才这样/etc/apt/sources.list.d
做。update