CentOS/RHEL查看yum history命令的详细历史记录
如何查看有关yum交易历史的详细信息,例如更新,已删除的软件包以及其他信息。
如何在基于CentOS Linux/RHEL 6.x或者7.x的服务器上查看yum命令的历史记录?
如何使用yum命令撤消,重做或者回滚软件包?
yum命令在最新版本的CentOS/RHEL v6.x +上具有history
选项。
通常在/var/lib/yum/history /
目录中找到数据库。
历史记录选项是在2009年底(或者其附近)添加到yum命令的。
history命令允许管理员访问有关已在系统上运行的yum事务的历史记录的详细信息。
您可以查看过去的事务中发生了什么(假设设置了history_record config。
选项)。
您可以使用各种命令行选项来查看发生的情况,使用undo/redo/rollback对该信息进行操作并启动新的历史记录文件。
本教程显示如何使用yum history命令查找有关已安装,已更新和已删除软件包的信息。
配置要求:在CentOS/RHEL上找到yum命令版本
您需要yum版本3.2.xx或者CentOS/RHEL6.x。
使用以下命令对此进行验证:
# yum info yum | grep --color Version
CentOS v6.5的输出示例:
Version : 3.2.29
CentOS/RHEL查看yum命令的详细历史记录
yum history命令使sysadmin可以查看有关所有Yum命令事务的信息,包括:
- 它们发生的日期和时间。
- 受影响的软件包数量。
- 事务是成功还是中止。
- 如果在事务之间更改了RPM数据库。
- 撤消或者重做某些交易。
yum history命令语法
基本语法为:
yum history yum history command #ID yum history [options] history [info|list|packages-list|summary|addon-info|redo|undo|rollback|new]
yum history命令示例以列出软件包更新
首先,验证是否已为yum命令配置了历史记录。
# ls -l /var/lib/yum/history/
输出示例:
total 1036 drwxr-xr-x. 30 root root 4096 Dec 9 11:40 2012-11-08 -rw-------. 1 root root 1050624 Dec 9 11:40 history-2012-11-08.sqlite
列出历史记录和yum历史记录
执行以下命令:
# yum history
或者
# yum history list
其中:
- ID交易编号。
- "登录用户",其登录会话用于发起yum的用户名。
- 日期和时间yum发出交易的日期和时间。
- "动作"交易期间执行的动作的列表,如下所示:
- " D"或者"降级"软件包已降级为较旧的版本。
E
或者Erase
软件包已被删除。I
或者Install
已安装新软件包。- O包或者过时包已被标记为已过时。
R
或者Reinstall
软件包已被重新安装。U
或者Update
软件包已更新至较新版本。Altered
受Yum影响的软件包数量,如下所示:- lt;`在事务完成之前,在yum之外更改了rpmdb数据库。
- 事务完成后,在yum之外更改了rpmdb数据库。
- *事务未能完成。
- ##事务成功完成,但是yum返回了一个非零的退出代码。
E
事务成功完成,但是显示了错误或者警告。- P事务成功完成,但是rpmdb数据库中已经存在问题。
- 事务成功完成,但是使用了跳过中断的命令行选项,并且跳过了某些软件包。
要查看所有交易,请按如下所示通过add
选项:
# yum history list all
您只能列出一个交易或者给定范围内的交易:
# yum history list 7 # yum history list 1..3
输出示例:
Loaded plugins: downloadonly, fastestmirror, security ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------ 3 | 106300 | 2013-08-12 15:14 | Update | 1 2 | 88177 | 2012-11-09 14:24 | Install | 2 1 | System <unset> | 2012-11-08 19:19 | Install | 380 history list
如何查看列出使用yum命令完成的内核软件包操作
运行以下两个命令来查找上一次安装或者更新Linux内核软件包的时间:
# yum history list kernel `### get info about ID no. 112 ###` # yum history info 112
列出所有过去所有交易的摘要
语法为:
# yum history summary # yum history summary 3 # yum history summary 1..3
输出示例:
Loaded plugins: downloadonly, fastestmirror, security Login user | Time | Action(s) | Altered ------------------------------------------------------------------------------ <Hyman> | Last day | Install | 1 <Hyman> | Last week | E, I | 3 root <root> | Last week | Update | 1 <Hyman> | Last 2 weeks | I, U | 139 <Hyman> | Last 3 months | Update | 1 root <root> | Last 3 months | I, O, U | 284 106300 | Last 6 months | I, U | 6 88177 | Over a year ago | Install | 2 System <unset> | Over a year ago | Install | 380 history summary
找出名为nginx的软件包的历史记录
基本语法为:
# yum history list PackageNameHere # yum history list nginx
输出示例:
Loaded plugins: downloadonly, fastestmirror, security ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------ 28 | <Hyman> | 2013-12-09 11:40 | Install | 1 EE history list
您还可以看到完整的历史记录,如下所示,包括版本号在内的mysql软件包,运行:
# yum history package-list mysql
输出示例:
Loaded plugins: downloadonly, fastestmirror, security ID | Action(s) | Package ------------------------------------------------------------------------------ 26 | Install | mysql-5.1.71-1.el6.x86_64 25 | Erase | mysql-5.1.71-1.el6.x86_64 EE 24 | Install | mysql-5.1.71-1.el6.x86_64 history package-list
现在,使用ID#24获取有关mysql软件包的详细信息:
# yum history info 24
输出示例:
Loaded plugins: downloadonly, fastestmirror, security Transaction ID : 24 Begin time : Mon Dec 2 11:35:59 2013 Begin rpmdb : 401:d28899f68a6631be573730605bd4825fe661fcce End time : 11:36:03 2013 (4 seconds) End rpmdb : 405:47873bf26c150bf0a26279da5c62d4ae4b1c227d User : <Hyman> Return-Code : Success Command Line : install mysql-server mysql Transaction performed with: Installed rpm-4.8.0-37.el6.x86_64 @base Installed yum-3.2.29-40.el6.centos.noarch @base Installed yum-plugin-fastestmirror-1.1.30-14.el6.noarch @base Packages Altered: Install mysql-5.1.71-1.el6.x86_64 @base Install mysql-server-5.1.71-1.el6.x86_64 @base Dep-Install perl-DBD-MySQL-4.013-3.el6.x86_64 @base Dep-Install perl-DBI-1.609-4.el6.x86_64 @base history info
要找出可用于某笔交易的其他信息:
# yum history addon-info id # yum history addon-info 24
要仅获取有关上一笔交易的信息:
# yum history addon-info last
如何撤消/还原交易?
假设您使用yum命令删除了nginx软件包:
# yum erase ngnix
现在,使用yum history命令来查看事务历史记录,yum history命令提供了还原或者重复选定事务的方法。
要还原(撤消)事务,请以root用户身份在shell提示符下执行以下内容:
# yum history undo id
要撤消nginx擦除操作,请执行:
# yum history # yum history package-list nginx
输出示例:
Loaded plugins: downloadonly, fastestmirror, security ID | Action(s) | Package ------------------------------------------------------------------------------ 29 | Erase | nginx-1.4.4-1.el6.ngx.x86_64 28 | Install | nginx-1.4.4-1.el6.ngx.x86_64 EE history package-list
要撤消使用ID 29:
# yum history undo 29
确认再次安装了nginx:
# yum history package-list nginx
Loaded plugins: downloadonly, fastestmirror, security ID | Action(s) | Package ------------------------------------------------------------------------------ 30 | Install | nginx-1.4.4-1.el6.ngx.x86_64 EE 29 | Erase | nginx-1.4.4-1.el6.ngx.x86_64 28 | Install | nginx-1.4.4-1.el6.ngx.x86_64 EE history package-list
如何重做/重复事务?
要重复特定事务,请运行:
# yum history redo id
yum历史记录回滚选项
语法为:
# yum history rollback id
rollback命令将撤消所有事务,直到指定事务为止。
例如,如果您有3个交易,则包A; B和C分别安装其中。
然后,yum history undo 1将尝试删除软件包A,yum history重做1将尝试安装软件包A(如果尚未安装),而yum history回滚1将尝试删除软件包B和C。
yum新选项
如上所述,yum命令将交易历史存储在/var/lib/yum/history /目录中的单个SQLite数据库文件中。
要启动新的事务历史记录,请运行以下命令:
# yum history new
使用以下命令进行验证:
# yum history