2010-06-03 125 views
3

有沒有辦法對yum更新時會更改的包進行備份?例如,當我做yum更新lighttpd是否有辦法備份和恢復lighttpd如果yum更新不成功或它會導致意外的錯誤或錯誤?如何做yum備份和恢復?

+0

我想你可能剛剛花了150美元的問題,否則將被關閉作爲題外話。 – skaffman 2010-06-07 11:07:09

+0

@skaffman你認爲這是更好的問題serverfault?我不確定。也許你是對的。但仍然需要一個答案 – 2010-06-09 13:00:03

+0

也許你也可以將問題發佈到serverfault。那麼,這是一場比賽。 :-) – artlung 2010-06-12 23:20:33

回答

3

如果您在使用RPM之前4.6.0(it's removed in newer versions),你可以使用rpm --rollback機制像in this old tutoriala more complete article與某些功能的解釋。 - 回滾功能是自動解決方案,由於它不可靠而被刪除。

你可以有一個手動解決方案,保持所有包的列表之前,百勝更新並重新安裝所需的RPM老可能使用--oldpackage像rpm -Uvh --oldpackage foo-1-1.i386.rpm

要獲得所有已安裝的列表包,通過安裝時間排序:如果您使用FEDO

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

Source

ra,這裏是一個使用安裝程序升級系統的官方指南,舉例說明如何創建a list of system current installed packages以及如何restore most of old software after an upgrade

如果您想要通用方法來獲取已安裝軟件的列表(不僅基於rpm),您還可以按照this article

0

我使用etckeeper跟蹤/etc下文件的變化。 etckeeper將/etc放在版本控制下(它支持多種版本控制系統,包括Git,Mercurial和Bazaar),並與許多Linux發行版(APT,YUM,Pacman)的軟件包管理系統集成。

如果在升級過程中發生了什麼不好的事情,我可以回滾任何東西。

1

如果您正在使用回購。保留所有舊版本,你可以做「yum downgrade lighttpd」(以及更新的yum的「yum history undo」)。如果你不是,那麼你可以保留舊的rpm的本地副本,並使用「yum downgrade lighttpd * .rpm」(儘管這很麻煩)。 有些問題可能不會被這個問題所解決,但這些應該是非常罕見的,降級不太可能會改變其他任何副作用。

最近創建了一個插件「yum-plugin-fs-snapshot」,它會在升級之前自動獲取FS快照(btrfs或LVM)......因此。那麼你可以回滾到快照。這是一個雖然改變,所以我不推薦它。