在磁盘空间非常有限的嵌入式系统上,我的文件夹/var/cache/apt
已满700MB,srcpkgcache.bin.*
其中有几个大*.bin
文件。
表演sudo apt-get clean
没有明显的不同。
手动删除这些*.bin*
文件是否安全?
archives
的/var/cache/apt/
,这是关于*.bin*
文件的。
在磁盘空间非常有限的嵌入式系统上,我的文件夹/var/cache/apt
已满700MB,srcpkgcache.bin.*
其中有几个大*.bin
文件。
表演sudo apt-get clean
没有明显的不同。
手动删除这些*.bin*
文件是否安全?
archives
的/var/cache/apt/
,这是关于*.bin*
文件的。
Answers:
并不是的。这些文件可帮助您的系统确定可用的和无效的。清空该目录将导致apt-get系统损坏。这里有一些技巧。
一,自动清洗
添加一个
DPkg::Post-Invoke { "apt-get clean"; };
到/etc/apt/apt.conf
。这将使apt和dpkg进程花费更长的时间,但是它将使缓存目录始终保持干净。
接下来,删除档案
首先,删除并禁用所有未使用的源档案。在嵌入式系统上,您可能不需要它们。接下来,删除所有未使用的档案。apt-cache policy
如果不确定,您可以运行以找出软件包的回购来源。
更多删除档案
有些PPA只需要1或2时就担心其中包含大量软件包。请尝试禁用这些PPA并仅手动安装deb文件。在这种情况下,您可以节省空间,但是会丢失自动更新。请记住,dpkg将处理依赖关系,因此您仍然可以安装thing-with-tons-of-deps.deb,然后运行apt-get -f install
以获取依赖关系。
完全答案1
因为谈论嵌入式系统,所以90%的主存储库对您没有任何好处。要对此进行处理,您可以运行自己的apt-get repo服务器。请参阅此链接。这并不容易,它只是一台机器的PIA。但是,如果您有几台这样的机器,那绝对值得。(您的apt repo服务器可以只托管您实际使用的一部分软件包。您无需镜像整个内容)
完全极端的答案2
如果空间确实是一个大问题,那么您可以一起禁用apt并通过dpkg还原为手动安装。我不得不在几个嵌入式系统上执行此操作。它有效,但这是管理员的噩梦。
*.bin
文件并不安全?任何运行apt-get update
都会从头开始重新生成那些文件(经过测试)。例如,我的用例是我想创建LXC容器模板,并希望尽可能地减少归档文件。我看不出有什么不安全的原因。您的答案并没有说明原因,只是说这是不安全的。经过测试,在Ubuntu 14.04 上完全安全。
apt-cache clean
在dpkg调用中包含将导致更干净的缓存,但是用户说apt-cache clean
并没有为他们清理任何内容。另外,您的答案是完全错误的,因为dpkg不使用/var/cache/apt/*
内容来获取有关软件包统计信息的信息。
clean
如*清洁送走的检索包文件的本地仓库。它会从/ var / cache / apt / archives /和/ var / cache / apt / archives / partial /中删除除锁定文件之外的所有内容。*如果存在危险,将没有此类函数可以清除。
您当然可以删除pkgcache.bin
和srcpkgcache.bin
,什么也不会发生。只需运行apt-get update
即可重新创建它们。
.deb
文件无关吗?
您当然可以为此创建一个NFS共享(网络文件系统)。将这些文件保留在服务器上,仅在要更新/安装软件包时挂载共享。在嵌入式环境中,无论如何安装通常都是相对静态的。
sshfs是另一个不错的选择,它设置起来容易得多(基本上只需要标准的SSH),但是开销更大(更慢)。
*.bin
假设当前没有与apt相关的进程正在运行,则删除上述文件夹中的文件是绝对安全的。接下来apt-get update
将重新生成*.bin
文件。这个问题绝对不是关于其中的文件/var/cache/apt/archives
,而是关于文件/var/cache/apt/*.bin
。巨大差距。前者可以通过发行进行清洁apt-get clean
,后者必须手动删除。显然,投票赞成关闭问题的人没有正确阅读问题。不幸的是,在授予我一些赏金代表后,我无法投票决定重新开放。