代码之家  ›  专栏  ›  技术社区  ›  Tom Smykowski

如何备份和恢复yum?

  •  3
  • Tom Smykowski  · 技术社区  · 16 年前

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

    3 回复  |  直到 16 年前
        1
  •  3
  •   GmonC    16 年前

    如果在4.6.0之前使用RPM( it's removed in newer versions ),您可以使用 rpm --rollback 类机制 in this old tutorial 或在 a more complete article 有一些功能说明。--rollback特性是 自动的 由于不可靠而被删除的解决方案。

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

    要获取所有已安装包的列表,请按安装时间排序:

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

    ( Source )

    如果您使用的是Fedora,下面是使用安装程序升级系统的官方指南,以及如何创建 a list of system current installed packages 以及如何 restore most of old software after an upgrade .

    如果你想要 通用的 获取已安装软件列表的方法(不仅基于RPM),您可以按照 this article 也。

        2
  •  1
  •   James Antill    16 年前

    如果您使用回购。这样可以保留所有旧版本,只需执行“yum降级lighttpd”(以及更新的yum的“yum历史撤消”)。如果您没有,那么您可以保留一个旧的RPM的本地副本,并使用“yum disgraded lighttpd*.rpm”(尽管这更棘手)。 有可能一些问题不会通过这种方式得到解决,但这些问题应该是非常罕见的,降级不太可能作为副作用改变其他任何事情。

    最近,一个插件“yum plugin fs snapshot”已经创建,它将自动获取一个fs快照(btrfs,或lvm),然后进行升级…因此。然后您可以回滚到快照。这是一个 大的 不过还是要改一下,所以我不推荐。

        3
  •  0
  •   Pascal Thivent    16 年前

    我用 etckeeper 跟踪下文件的更改 /etc . 埃特克斯特放 在版本控制下(它支持多种版本控制系统,包括Git、Mercurial和Bazaar),并与许多Linux发行版(APT、yum、pacman)的包管理系统集成。

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