当你使用apt-get或apt命令安装一个软件包时(或在软件中心安装DEB包),APT包管理器会以.deb格式下载软件包及其依赖关系,并将其保存在/var/cache/apt/archives文件夹中。
下载时,apt将deb包保存在/var/cache/apt/archives/partial目录下。当deb包完全下载完毕后,它会被移到/var/cache/apt/archives目录下。
下载完包的deb文件及其依赖关系后,你的系统就会从这些deb文件中安装包。
现在你知道缓存的用途了吧?系统在安装软件包之前,需要一个地方把软件包文件存放在某个地方。如果你了解Linux目录结构,你就会明白,/var/cache是合适的地方。
为什么安装包后要保留缓存?
下载的deb文件在安装完成后并不会立即从目录中删除。如果你删除了一个软件包,然后重新安装,你的系统会在缓存中查找这个软件包,并从这里获取它,而不是重新下载(只要缓存中的软件包版本与远程仓库中的版本相同)。
这样就快多了。你可以自己尝试一下,看看一个程序第一次安装,删除后再安装需要多长时间。你可以使用time命令来了解完成一个命令需要多长时间:time sudo apt install package_name。
我找不到任何关于缓存保留策略的内容,所以我无法说明Ubuntu会在缓存中保留下载的包多长时间。
你应该清理APT缓存吗?
这取决于你。如果你的根目录下的磁盘空间用完了,你可以清理APT缓存来回收磁盘空间。这是Ubuntu上释放磁盘空间的几种方法之一。
使用du命令检查缓存占用了多少空间:
有的时候,这可能会占用几百兆,如果你正在运行一个服务器,这些空间可能是至关重要的。
如何清理APT缓存?
如果你想清除APT缓存,有一个专门的命令来做。所以不要去手动删除缓存目录。只要使用这个命令就可以了:
sudo apt-get clean
这将删除/var/cache/apt/archives目录的内容(除了锁文件)。以下是apt-get clean命令模拟删除内容:
还有一个命令是关于清理APT缓存的:
sudo apt-get autoclean
与clean不同的是,autoclean只删除那些无法从仓库中下载的包。
假设你安装了包xyz。它的deb文件仍然保留在缓存中。如果现在仓库中有新的xyz包,那么缓存中现有的这个xyz包就已经过时了,没有用了。autoclean选项会删除这种不能再下载的无用包。
删除apt缓存安全吗?
是的,清除APT创建的缓存是完全安全的。它不会对系统的性能产生负面影响。也许如果你重新安装软件包,下载时间会更长一些,但也仅此而已。
再说一次,使用apt-get clean命令。它比手动删除缓存目录更快、更简单。
你也可以使用像Stacer或Bleachbit这样的图形工具来实现这个目的。
总结
在写这篇文章的时候,新的apt命令没有这样的内置选项。不过,为了保持向后的兼容性,仍然可以运行apt clean(内部应该是运行了apt-get clean)。请参考这篇文章来了解apt和apt-get的区别。
我希望你觉得这个关于APT缓存的解释很有趣。虽然这不是什么必要的东西,但了解这些小东西会让你对你的Linux系统更加了解。
欢迎你在评论区提出反馈和建议。
via: itsfoss.com
作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
来源:7777888888精准新管家,最新数据解读:如何清除APT缓存来回收宝贵的磁盘空间
转载请注明来自奇乐科技,本文标题:《7777888888精准新管家,最新数据解读:如何清除 APT 缓存来回收宝贵的磁盘空间 》