yum彻底卸载软件包实现方式(包含依赖)

 更新时间:2025年10月29日 10:01:49   作者:mighty13  
文章介绍了如何使用yum命令安装软件包时自动处理依赖关系,以及当需要删除这些依赖包时,如何通过`yumhistory`命令查看和回滚安装事务来实现,具体步骤包括查看事务历史、筛选事务、查看详细信息以及回滚事务

概述

yum命令安装软件包时会自动依赖包,但yum remove子命令只卸载该软件包而不能卸载依赖。

如果需要删除安装时自动安装的依赖包,则可以使用yum history子命令回滚安装事务以达到目的。

具体操作

查看yum操作(事务)历史

[root@localhost ~]# yum history list 或 yum history
Loading "fastestmirror" plugin
Config time: 0.007
Yum version: 3.4.3
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     3 | root <root>              | 2022-01-10 15:38 | Install        |   12 EE
     2 | root <root>              | 2022-01-10 10:38 | I, U           |    8   
     1 | System <unset>           | 2022-01-10 10:05 | Install        |  311   

查看某个事务详细信息

历史记录当中没有直接列出事务的详细信息,但是可根据时间和操作类型初步筛选事务。

然后通过 yum history info子命令查看事务的详细信息。

例如这里查看ID为3的事务的详细信息。

[root@localhost ~]# yum history info 3
Loaded plugins: fastestmirror
Transaction ID : 3
Begin time     : Mon Jan 10 15:38:41 2022
Begin rpmdb    : 318:0a512f196782814fe726bc61f44b5332aac74b38
End time       :            15:38:44 2022 (3 seconds)
End rpmdb      : 330:d9fb4e7bea655b40bcabffd6eb2a8a2f81110793
User           : root <root>
Return-Code    : Success
Command Line   : install zabbix-server-mysql zabbix-agent
Transaction performed with:
    Installed     rpm-4.11.3-32.el7.x86_64                      @anaconda
    Installed     yum-3.4.3-158.el7.centos.noarch               @anaconda
    Installed     yum-plugin-fastestmirror-1.1.31-45.el7.noarch @anaconda
Packages Altered:
    Dep-Install OpenIPMI-libs-2.0.23-2.el7.x86_64          @centos7
    Dep-Install OpenIPMI-modalias-2.0.23-2.el7.x86_64      @centos7
    Dep-Install fping-3.10-4.el7.x86_64                    @epel
    Dep-Install libevent-2.0.21-4.el7.x86_64               @centos7
    Dep-Install net-snmp-libs-1:5.7.2-32.el7.x86_64        @centos7
    Dep-Install traceroute-3:2.0.22-2.el7.x86_64           @centos7
    Dep-Install unixODBC-2.3.1-11.el7.x86_64               @centos7
    Dep-Install zabbix50-5.0.18-1.el7.x86_64               @epel
    Install     zabbix50-agent-5.0.18-1.el7.x86_64         @epel
    Dep-Install zabbix50-dbfiles-mysql-5.0.18-1.el7.noarch @epel
    Dep-Install zabbix50-server-5.0.18-1.el7.noarch        @epel
    Install     zabbix50-server-mysql-5.0.18-1.el7.x86_64  @epel
Scriptlet output:
   1 sed: can't read /etc/sysconfig/ipmi: No such file or directory
history info

回滚事务(删除)

确定需要回滚的安装事务后,使用yum history undo子命令实现回滚。

[root@localhost ~]# yum history undo 3
......
Removed:
  OpenIPMI-libs.x86_64 0:2.0.23-2.el7           OpenIPMI-modalias.x86_64 0:2.0.23-2.el7             fping.x86_64 0:3.10-4.el7              libevent.x86_64 0:2.0.21-4.el7               net-snmp-libs.x86_64 1:5.7.2-32.el7                 
  traceroute.x86_64 3:2.0.22-2.el7              unixODBC.x86_64 0:2.3.1-11.el7                      zabbix50.x86_64 0:5.0.18-1.el7         zabbix50-agent.x86_64 0:5.0.18-1.el7         zabbix50-dbfiles-mysql.noarch 0:5.0.18-1.el7        
  zabbix50-server.noarch 0:5.0.18-1.el7         zabbix50-server-mysql.x86_64 0:5.0.18-1.el7  

yum history子命令详细帮助

[root@localhost ~]# man yum
......
      history
              The history command allows the user to view what has happened in past transactions (assuming the history_record config. option is set). You can use info/list/packages-list/packages-info/summary to view what happened,
              undo/redo/rollback to act on that information and new to start a new history file.

              The info/list/summary commands take either a transaction id or a package (with wildcards, as in Specifying package names), all three can also be passed no arguments. list can be passed the keyword "all" to  list  all
              the transactions.

              The info command can also take ranges of transaction ids, of the form start..end, which will then display a merged history as if all the transactions in the range had happened at once.
              Eg. "history info 1..4" will merge the first four transactions and display them as a single transaction.

              The packages-list/packages-info commands takes a package  (with wildcards, as in Specifying package names). And show data from the point of view of that package.

              The  undo/redo/rollback  commands  take  either a single transaction id or the keyword last and an offset from the last transaction (Eg. if you've done 250 transactions, "last" refers to transaction 250, and "last-4"
              refers to transaction 246).  The redo command can also take some optional arguments before you specify the transaction. "force-reinstall" tells it reinstall any packages that were installed in that  transaction  (via
              install, upgrade or downgrade).  "force-remove" tells it to forcibly remove any packages that were updated or downgraded.

              The  undo/redo  commands  act  on the specified transaction, undo'ing or repeating the work of that transaction. While the rollback command will undo all transactions up to the point of the specified transaction. For
              example, if you have 3 transactions, where package A; B and C where installed respectively.  Then "undo 1" will try to remove package A, "redo 1" will try to install package A (if it  is  not  still  installed),  and
              "rollback 1" will try to remove packages B and C. Note that after a "rollback 1" you will have a fourth transaction, although the ending rpmdb version (see: yum version) should be the same in transactions 1 and 4.

              The addon-info command takes a transaction ID, and the packages-list command takes a package (with wildcards).

              The stats command shows some statistics about the current history DB.

              The sync commands allows you to change the rpmdb/yumdb data stored for any installed packages, to whatever is in the current rpmdb/yumdb (this is mostly useful when this data was not stored when the package went into
              the history DB).

              In "history list" you can change the behaviour of the 2nd column via the configuration option history_list_view.

              In "history list" output the Altered column also gives some extra information if there was something not good with the transaction (this is also shown at the end of the package column in the packages-list command).

              > - The rpmdb was changed, outside yum, after the transaction.
              < - The rpmdb was changed, outside yum, before the transaction.
              * - The transaction aborted before completion.
              # - The transaction completed, but with a non-zero status.
              E - The transaction completed fine, but had warning/error output during the transaction.
              P - The transaction completed fine, but problems already existed in the rpmdb.
              s - The transaction completed fine, but --skip-broken was enabled and had to skip some packages.
[root@localhost ~]# yum history help
Loaded plugins: fastestmirror
Invalid history sub-command, use: list, info, summary, repeat, redo, undo, new, rollback, addon, addon-info, stats, statistics, sync, synchronizepkg, pkgs, pkg-list, pkgs-list, package, package-list, packages, packages-list, pkg-info, pkgs-info, package-info, packages-info.

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux写shell需要注意的问题(必看)

    linux写shell需要注意的问题(必看)

    下面小编就为大家带来一篇linux写shell需要注意的问题(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • CentOS-NAT模式下(DHCP)联网成功案例

    CentOS-NAT模式下(DHCP)联网成功案例

    这篇文章主要为大家详细介绍了CentOS-NAT模式下(DHCP)联网成功,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 详解Linux中搭建常用服务器

    详解Linux中搭建常用服务器

    本篇文章主要介绍了Linux中搭建常用服务器,主要包括telnet、DHCP、DNS、sendmail、FTP、web、samba有兴趣的可以了解一下。
    2016-12-12
  • Linux安装VNC过程(Linux桌面版远程)

    Linux安装VNC过程(Linux桌面版远程)

    文章介绍了在CentOS 7上安装和配置VNC服务的方法,包括设置密码、启停服务、关闭端口以及设置开机自启动,还提到了卸载GUI图形界面的方法,以提高服务器性能
    2026-01-01
  • Vim编辑器常用的命令总结

    Vim编辑器常用的命令总结

    使用 Vim 的时间不长,但如今已经离不开熟悉的 Vim 编辑模式了。 Vim 的学习曲线是非常陡的,一开始学习的时候,面对很多的操作命令要去记住,常常望而却步。其实,只要记住一些常用的命令,加之在工作中坚持使用 Vim 进行编辑,很快就能得心应手了。下面来一起看看吧。
    2017-04-04
  • Linux nohup命令原理及实例解析

    Linux nohup命令原理及实例解析

    这篇文章主要介绍了Linux nohup命令原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • linux如何将环境文件或者文件夹打包

    linux如何将环境文件或者文件夹打包

    这篇文章主要介绍了linux如何将环境文件或者文件夹打包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Linux系统CPU100%的处理步骤和方法

    Linux系统CPU100%的处理步骤和方法

    当 Linux 系统的 CPU 使用率达到 100% 时,系统可能会变得卡顿,响应速度减慢,甚至无法正常使用,这种情况通常由高负载的进程、资源不足或潜在的系统问题引起,以下是处理 CPU 100% 的具体步骤和方法,需要的朋友可以参考下
    2025-11-11
  • apache rewrite规则实现白名单

    apache rewrite规则实现白名单

    今天弄了半天apache 的rewrite 规则,还是没有配置出符合的规则。后一同事,研究了半个小时弄出来,很是惭愧。
    2014-06-06
  • 解决Ubuntu19 安装Theano问题

    解决Ubuntu19 安装Theano问题

    这篇文章主要介绍了解决Ubuntu19 安装Theano出现"No module named ‘theano.compat.six’"问题,需要的朋友可以参考下
    2019-12-12

最新评论