yum history 使用简介

说到 yum,我想很多人都再熟悉不过。但是,在日常的使用中,我们大都只用到了 yum installyum removeyum updateyum cleanyum makecache 这些跟仓库或者跟软件装卸载有关的命令。最近,我发现 yum history 这个命令也有很多实用之处,有助于我们更好地对安装包进行管理。

yum history,顾名思义,就是查看 yum 命令的历史记录的,这有啥好介绍的。但是,通过 yum history 的子命令,我们可以做很多事情。

1
2
3
4
[root@localhost ~]# yum history help
已加载插件:fastestmirror
无效的历史子命令,使用: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。
[root@localhost ~]#

下面就来介绍一下 yum history 的几个实用子命令。

yum history info [ID]

如果你使用 yum 安装了软件,但是安装过程跳动很快被刷屏,你又想知道软件都“偷偷”安装了哪些依赖包,可以使用此命令查看软件的安装包及依赖包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 先用 list 查看安装 ID
# 后续命令有 ID 字样的,指的都是历史记录 ID
[root@localhost ~]# yum history list
已加载插件:fastestmirror
ID | 登录用户 | 日期和时间 | 操作 | 变更数
-------------------------------------------------------------------------------
2 | root <root> | 2018-05-02 18:05 | I, U | 27
1 | 系统 <空> | 2018-05-02 15:11 | Install | 299
history list
[root@localhost ~]#

# 查看对应 ID 所安装的软件包

[root@localhost ~]# yum history info 2
已加载插件:fastestmirror
事务 ID: 2
起始时间 : Wed May 2 18:05:54 2018
启动 RPM 数据库 : 299:6045bb373e48a8fbc06b7180078a3d036b3fdbaa
结束时间 : 18:06:47 2018 (53 秒)
结束 RPM 数据库 : 316:71d71585e8358c57890fec9d7c00bf7a9ce459ee
用户 : root <root>
返回码 : 成功
命令行 : install docker
事务完成属主:
已安装 rpm-4.11.3-25.el7.x86_64 @anaconda
已安装 yum-3.4.3-154.el7.centos.noarch @anaconda
已安装 yum-plugin-fastestmirror-1.1.31-42.el7.noarch @anaconda
已变更的包:
更新完毕 audit-2.7.6-3.el7.x86_64 @anaconda
更新 2.8.1-3.el7.x86_64 @base
更新完毕 audit-libs-2.7.6-3.el7.x86_64 @anaconda
更新 2.8.1-3.el7.x86_64 @base
依赖安装 audit-libs-python-2.8.1-3.el7.x86_64 @base
依赖安装 checkpolicy-2.5-6.el7.x86_64 @base
依赖安装 container-selinux-2:2.55-1.el7.noarch @extras
依赖安装 container-storage-setup-0.9.0-1.rhel75.gite0997c3.el7.noarch @extras
安装 docker-2:1.13.1-63.git94f4240.el7.centos.x86_64 @extras
依赖安装 docker-client-2:1.13.1-63.git94f4240.el7.centos.x86_64 @extras
依赖安装 docker-common-2:1.13.1-63.git94f4240.el7.centos.x86_64 @extras
依赖安装 libcgroup-0.41-15.el7.x86_64 @base
更新完毕 libselinux-2.5-11.el7.x86_64 @anaconda
更新 2.5-12.el7.x86_64 @base
更新完毕 libselinux-python-2.5-11.el7.x86_64 @anaconda
更新 2.5-12.el7.x86_64 @base
更新完毕 libselinux-utils-2.5-11.el7.x86_64 @anaconda
更新 2.5-12.el7.x86_64 @base
更新完毕 libsemanage-2.5-8.el7.x86_64 @anaconda
更新 2.5-11.el7.x86_64 @base
依赖安装 libsemanage-python-2.5-11.el7.x86_64 @base
更新完毕 libsepol-2.5-6.el7.x86_64 @anaconda
更新 2.5-8.1.el7.x86_64 @base
依赖安装 oci-register-machine-1:0-6.git2b44233.el7.x86_64 @extras
依赖安装 oci-systemd-hook-1:0.1.15-2.gitc04483d.el7.x86_64 @extras
依赖安装 oci-umount-2:2.3.3-3.gite3c9055.el7.x86_64 @extras
更新完毕 policycoreutils-2.5-17.1.el7.x86_64 @anaconda
更新 2.5-22.el7.x86_64 @base
依赖安装 policycoreutils-python-2.5-22.el7.x86_64 @base
依赖安装 python-IPy-0.75-6.el7.noarch @base
更新完毕 selinux-policy-3.13.1-166.el7.noarch @anaconda
更新 3.13.1-192.el7_5.3.noarch @updates
更新完毕 selinux-policy-targeted-3.13.1-166.el7.noarch @anaconda
更新 3.13.1-192.el7_5.3.noarch @updates
依赖安装 setools-libs-3.3.8-2.el7.x86_64 @base
依赖安装 skopeo-containers-1:0.1.29-3.dev.git7add6fc.el7.0.x86_64 @extras
依赖安装 yajl-2.0.4-4.el7.x86_64 @base
history info
[root@localhost ~]#

yum history repeat <ID>

重复执行某一次 yum 操作,没多大作用,一般只会提示包已存在。建议使用 yum history redo 代替。

yum history redo <ID>

yum reinstall 效果一致,作用各有不同。yum reinstall 一般针对某个或某几个特定的包进行操作,而 yum history redo 则是根据某条历史记录所包含的包进行操作。

yum history undo <ID>

yum remove 类似,针对条件不同,解释如上。

yum history new

重建 history,不建议操作,会清空所有历史记录。当然,有特殊目的的除外。:P

yum history rollback <ID>

回滚到某个 ID 的时刻,即此 ID 之后的所有 yum 操作,都会进行回滚清除。

yum history pkgs <package>

搜索使用 yum 安装过的软件包。

1
2
3
4
5
6
7
[root@localhost ~]# yum history pkgs docker     
已加载插件:fastestmirror
ID | 操作 | Package
-------------------------------------------------------------------------------
1 | 重新安装 | docker-2:1.13.1-63.git94f4240.el7.centos.x86_64
history pkgs
[root@localhost ~]#

yum history pkgs-info <package>

搜索使用 yum 安装的软件包的详细信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@localhost ~]# yum history pkgs-info docker
已加载插件:fastestmirror
事务 ID: 1
起始时间 : Wed May 2 18:43:37 2018
包 : docker-2:1.13.1-63.git94f4240.el7.centos.x86_64
状态 : 重新安装
大小 : 59,670,305
构建主机 : c1bm.rdu2.centos.org
构建时间 : Fri May 18 23:47:46 2018
打包者 : CentOS BuildSystem <http://bugs.centos.org>
供应商 : CentOS
许可协议 : ASL 2.0
URL : https://github.com/docker/docker
源代码 RPM : docker-1.13.1-63.git94f4240.el7.centos.src.rpm
提交时间 : Fri May 18 20:00:00 2018
提交者 : Johnny Hughes <johnny@centos.org>
原因 : user
命令行 : reinstall docker
来自源 : extras
安装者 : root <root>
修改者 : root <root>
history pkgs-info
[root@localhost ~]#