搜索

9.2. 恢复 DNF 事务

download PDF

如果要撤销事务期间执行的操作,则恢复 DNF 事务会很有用。例如,如果使用 dnf install 命令安装几个软件包,您可以通过恢复安装事务一次卸载这些软件包。

您可以使用以下方法恢复 DNF 事务:

  • 使用 dnf history undo 命令恢复单个 DNF 事务。
  • 使用 dnf history rollback 命令恢复指定事务和最后一个事务之间执行的所有 DNF 事务。
重要

不支持使用 dnf history undodnf history rollback 命令将 RHEL 系统软件包降级到旧版本。特别是 selinux、 selinux -policy operatorkernel、kernel 和 glibc 软件包以及 glibc 的依赖项,如 gcc。因此,不建议将系统降级为次版本(例如,从 RHEL 9.1 升级到 RHEL 9.0),因为它可能会使系统处于不正确的状态。

9.2.1. 恢复单个 DNF 事务

您可以使用 dnf history undo 命令恢复在单个事务中执行的步骤:

  • 如果事务安装了新软件包,dnf history undo 会卸载软件包。
  • 如果事务卸载了软件包,dnf history undo 会重新安装软件包。
  • 如果旧的软件包可用,dnf history undo 命令还会尝试将所有更新的软件包降级到之前的版本。

    注意

    如果旧的软件包版本不可用,则使用 dnf history undo 命令降级会失败。

流程

  1. 确定您要恢复的事务的 ID:

    # dnf history
    ID | Command line     | Date and time     | Action(s)      | Altered
    --------------------------------------------------------------------
    13 | install zip      | 2022-11-03 10:49  | Install        |    1
    12 | install unzip    | 2022-11-03 10:49  | Install        |    1
  2. 可选:通过显示其详情来验证您要恢复的事务:

    # dnf history info <transaction_id>
  3. 恢复事务:

    # dnf history undo <transaction_id>

    例如,如果要卸载之前安装的 unzip 软件包,请输入:

    # dnf history undo 12

9.2.2. 恢复多个 DNF 事务

您可以使用 dnf history rollback 命令恢复指定事务和最后一个事务之间执行的所有 DNF 事务。请注意,事务 ID 指定的事务保持不变。

流程

  1. 确定您要恢复到的状态的事务 ID:

    # dnf history
    ID | Command line     | Date and time     | Action(s)   | Altered
    ------------------------------------------------------------------
    14 | install wget     | 2022-11-03 10:49  | Install     |    1
    13 | install unzip    | 2022-11-03 10:49  | Install     |    1
    12 | install vim-X11  | 2022-11-03 10:20  | Install     |  171 EE
  2. 恢复指定的事务:

    # dnf history rollback <transaction_id>

    例如,要在安装 wgetunzip 软件包前恢复到状态,请输入:

    # dnf history rollback 12

    或者,要恢复事务历史记录中的所有事务,请使用事务 ID 1

    # dnf history rollback 1
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.