linux极简小知识:4、使用yum history卸载某次安装的软件包及其依赖

2,983 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

使用 yum install 安装某个软件时,如果安装包含依赖,会一同进行安装。

但是,使用 yum remove 卸载时,却不会将软件及依赖一起卸载。

那么,如何使用 yum 卸载软件及其所有的依赖呢?答案是使用 yum history 命令。

yum remove不会卸载依赖

如下,在安装 mysql 时,会一起安装 mysql-community-client 、mysql-community 、mysql-community-libs 、mysql-community-client-plugins 、mysql-community-server

如下:

# rpm -qa | grep mysql
mysql-community-client-8.0.26-1.el7.x86_64
mysql-community-common-8.0.26-1.el7.x86_64
mysql80-community-release-el7-3.noarch
mysql-community-libs-8.0.26-1.el7.x86_64
mysql-community-client-plugins-8.0.26-1.el7.x86_64
mysql-community-server-8.0.26-1.el7.x86_64

release-el7-3.noarch 为MySQL仓库源的包

卸载安装时的 mysql-community-server

# yum remove mysql-community-server -y

其依赖仍存在:

# rpm -qa | grep mysql
mysql-community-client-8.0.26-1.el7.x86_64
mysql-community-common-8.0.26-1.el7.x86_64
mysql80-community-release-el7-3.noarch
mysql-community-libs-8.0.26-1.el7.x86_64
mysql-community-client-plugins-8.0.26-1.el7.x86_64

yum history 查看历史记录

使用 yum history 可以查看所有的安装历史。

# yum history
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    30 | root <root>              | 2021-09-03 21:13 | Erase          |    1
    29 | root <root>              | 2021-09-03 17:02 | Install        |    5 P<
    28 | root <root>              | 2021-09-03 16:58 | Install        |    1 ><
    27 | root <root>              | 2021-09-03 16:52 | Install        |    1 ><
    26 | root <root>              | 2021-09-03 16:30 | Install        |    1 ><
    25 | root <root>              | 2021-09-03 09:54 | Install        |    1 >
    24 |  <root_test>             | 2021-09-02 15:20 | Install        |    1 P<
    23 |  <root_test>             | 2021-09-02 15:17 | Install        |    1 ><
    22 |  <root_test>             | 2021-09-02 15:08 | Install        |    1 ><
    21 |  <root_test>             | 2021-09-02 13:28 | Install        |    1 >
    20 |  <root_test>             | 2021-09-02 13:22 | I, U           |    5
    19 | root <root>              | 2019-09-19 10:19 | I, U           |    8
    18 | root <root>              | 2019-09-18 17:11 | Install        |    4
    17 | root <root>              | 2019-09-18 16:47 | Erase          |    2
    16 | root <root>              | 2019-06-21 16:04 | Install        |   13 EE
    15 | root <root>              | 2019-06-21 09:39 | I, O, U        | 1038 EE
    14 | root <root>              | 2019-06-14 16:41 | I, U           |    6 EE
    13 | root <root>              | 2019-06-14 11:06 | Install        |    1
    12 | root <root>              | 2019-03-28 18:01 | I, U           |   23
    11 | root <root>              | 2019-03-28 15:13 | Install        |    1
history list

yum history undo ID 撤销某一次的所有安装

从上面的列表中,可以查找安装 mysql-community-server 使的记录的ID为29。

然后 undo 撤销这次安装的所有软件(包及其依赖)

# yum history undo 29 -y

执行完后,再次查看:

# rpm -qa | grep mysql
mysql80-community-release-el7-3.noarch

使用redo重新还原安装

使用 redo ID 可以还原某次的安装。

# yum history redo 29 -y