Centos 如何执行yum备份和恢复?

Centos 如何执行yum备份和恢复?,centos,yum,Centos,Yum,是否有一种方法可以备份将在yum更新时更改的包?例如,当我执行yum-update-lighttpd时,如果yum-update不成功或会导致意外错误或bug,是否有方法备份和恢复lighttpd?如果您使用的是4.6.0()之前的RPM,您可以使用RPM--rollback机制,如或,并附带一些功能说明。--rollback特性是一个自动解决方案,因为它不可靠而被删除 您可以使用手动解决方案,在yum更新之前保留所有包的列表,并可能使用--oldpackage likerpm-Uvh--old

是否有一种方法可以备份将在yum更新时更改的包?例如,当我执行yum-update-lighttpd时,如果yum-update不成功或会导致意外错误或bug,是否有方法备份和恢复lighttpd?

如果您使用的是4.6.0()之前的RPM,您可以使用
RPM--rollback
机制,如或,并附带一些功能说明。--rollback特性是一个自动解决方案,因为它不可靠而被删除

您可以使用手动解决方案,在yum更新之前保留所有包的列表,并可能使用--oldpackage like
rpm-Uvh--oldpackage foo-1-1.i386.rpm
,重新安装所需的旧rpm:

要获取按安装时间排序的所有已安装软件包的列表,请执行以下操作:

rpm -q -a --queryformat '%{INSTALLTIME} %{NAME}-%{VERSION}-%{RELEASE}\n' | sort -n 
()

如果您使用的是Fedora,这里有一个使用安装程序升级系统的官方指南,其中有一个示例,说明如何创建和使用

如果您想要获得已安装软件列表的通用方法(不仅基于rpm),您也可以遵循。

我使用
/etc
跟踪文件的更改。etckeeper将
/etc
置于版本控制之下(它支持多个版本控制系统,包括Git、Mercurial和Bazaar),并与许多Linux发行版(APT、YUM、Pacman)的软件包管理系统集成


如果在升级过程中发生了什么不好的事情,我可以回滚任何东西。

如果您使用的是回购协议。为了保留所有旧版本,您只需执行“yum-grade-lighttpd”(以及更新的yum的“yum-history-undo”)。如果您没有,那么您可以保留旧rpm的本地副本,并使用“yum-grade-lighttpd*.rpm”(尽管这更复杂)。 有些问题可能无法通过这一措施解决,但这些问题应该非常罕见,降级不太可能改变任何其他副作用


最近创建了一个插件“yum-plugin-fs-snapshot”,它将在升级之前自动获取一个fs快照(btrfs,或LVM)。。。因此然后可以回滚到快照。不过这是一个很大的变化,所以我不建议你这么做。

我想你可能刚刚花了150美元在一个问题上,否则这个问题会被作为离题题而关闭。@skaffman你认为这是一个更好的问题吗?我不确定。也许你是对的。但是仍然需要一个答案也许你也可以把问题贴到服务器上。那么,这就是一场比赛。:-)