清除 yum 缓存中的所有包的安全方法是什么?

清除 yum 缓存中的所有包的安全方法是什么?

我知道这yum clean all并不一定会清除所有软件包文件。我从“也许你想要:rm -rf /var/cache/yum“我可能不得不,天哪,直言不讳全部/var/cache/yum我刚刚发现我肯定不是想要清除所有/var/cache/yum,因为显然安装了哪些软件包的记录也保存在那里的某个地方。如果没有 中的某些文件/var/cache/yumrpm -qa似乎什么也不会打印出来。

那么是否存在一个简单的规则,/var/cache/yum可以手动删除下面的其他文件,通过删除不需要的包文件(或可以轻松重新下载)来节省空间,但保留系统的安装状态?

我可能在一个或多个假设上完全错了。如果是的话,欢迎指正。

更新:我在这里跳过了一些细节,但将所有内容/var/cache/yum从有它的系统复制到没有它的系统不是修复rpm -qa(它仍然没有打印任何内容),所以看起来我的一个假设是有缺陷的,并且系统的安装状态保存在除/var之外的某个地方/var/cache/yum

更新 2:我曾是我的一个假设是错误的。正如我最终发现的,正如@shodanshok在回答中指出的那样,当前安装的软件包的数据库位于/var/lib/rpm不是 /var/cache/yum。因此清除所有/var/cache/yum应该是安全的。

答案1

运行yum clean all通常足以满足所有意图和目的,因为它只会留下很少的已使用空间。例外情况是当您禁用存储库时正在运行yum clean all,禁止yum清除该 repo 缓存。

无论如何,删除/var/cache/yum应该不会有任何不良影响,尤其是因为 RPM 数据库位于 下/var/lib/rpm而不是 下/var/cache

答案2

没有安装任何 rpm 包的 Red Hat 盒子已经损坏。

首先,确认这是一个应该有真实 rpm 数据库的主机。而不是一些奇怪的容器或 chroot 或其他精简的东西。确定系统是否应该通过 获得更新yum update。并检查yum history是否记录了最新的 yum 命令。yum 不会自行进入此状态,它会拒绝删除受保护的软件包。

系统可以正常运行,但 rpm 查询中却没有任何内容,这意味着有人对 rpm 做了一些非常不安全的事情。例如删除了 rpm 数据库而没有删除软件包。清理起来会很麻烦。正如所讨论的,删除 yum 缓存不会造成这种情况。

考虑从安装程序重新安装新主机。恢复数据。这种全新启动的优点包括从已知良好的 rpm 系统开始。并且可能您可以借此机会进行重大软件升级。

或者,也可以从损坏的 rpm 数据库中恢复。假设任何数据库仍然存在。仅当您无法从备份中恢复时才这样做,并了解您的 rpm 正在使用哪个数据库后端。在尝试之前备份主机,包括 rpm db。如果对主机的软件包数据库进行操作比重新安装更容易,那么主机对您来说就需要有一定的价值。

相关内容