我非常熟悉
rpm -qa --last发现它在某些场合非常方便。然而,在这一次,我意外地有点过于热心,并安装了一个庞大的百胜集团。
yum groupinstall "Development tools"有没有一种简单的方法来卸载我刚刚安装的所有东西?在我看来,应该有一些方法结合rpm查询和rpm擦除。也就是说,将查询命令的输出传递到remove命令。
更新:基于用户@rickhg12hs反馈的
有人指出,我可以看到与yum history的事务id,这是我不知道的。如下所示:
$ yum history
Loaded plugins: fastestmirror, security
ID | Login user | Date and time | Action(s) | Altered
----------------------------------------------------------------------------
69 | <jds> | 2015-05-11 01:31 | Install | 1
68 | <jds> | 2015-05-11 01:31 | Install | 1
67 | <jds> | 2015-05-11 01:10 | I, U | 210
66 | <jds> | 2015-05-05 12:41 | Install | 1
65 | <jds> | 2015-04-30 17:57 | Install | 2
64 | <ansible> | 2015-04-30 10:11 | Install | 1
63 | <ansible> | 2015-04-30 10:11 | Install | 1
62 | <ansible> | 2015-04-30 10:11 | Install | 1 EE
61 | <ansible> | 2015-04-30 10:11 | Install | 1
60 | <ansible> | 2015-04-30 10:11 | Install | 1
59 | <ansible> | 2015-04-30 09:58 | Install | 19 P<
58 | <ansible> | 2015-04-29 18:28 | Install | 1 >
57 | <ansible> | 2015-04-29 18:28 | Install | 1
56 | <ansible> | 2015-04-29 18:28 | Install | 9
55 | <ansible> | 2015-04-29 18:28 | Install | 3
54 | <ansible> | 2015-04-29 18:28 | Install | 1
53 | <ansible> | 2015-04-29 18:27 | I, U | 5
52 | <ansible> | 2015-04-29 18:27 | I, U | 4
51 | <ansible> | 2015-04-29 18:27 | Install | 1
50 | <ansible> | 2015-04-29 18:27 | Install | 1 塔达:这就是,一个交易id。
我想从事务id 67卸载。所以现在我更聪明了,我有一个新问题。
那么,如何使用yum或rpm命令卸载事务呢?
注:有人还向我指出,我可以做一个
$ yum history info 67 |less
Loaded plugins: fastestmirror, security
Transaction ID : 67
Begin time : Mon May 11 01:10:09 2015
Begin rpmdb : 1012:bb05598315dcb21812b038a356fa06333d277cde
End time : 01:13:25 2015 (196 seconds)
End rpmdb : 1174:cb7855e82c7bff545319c38b01a72a48f3ada1ab
User : <jds>
Return-Code : Success
Command Line : groupinstall Additional Development
Transaction performed with:
Installed rpm-4.8.0-38.el6_6.x86_64 @updates
Installed yum-3.2.29-60.el6.centos.noarch @anaconda-CentOS-201410241409.x86_64/6.6
Installed yum-plugin-fastestmirror-1.1.30-30.el6.noarch @anaconda-CentOS-201410241409.x86_64/6.6
Packages Altered:
Dep-Install GConf2-2.28.0-6.el6.x86_64 @base
Install GConf2-devel-2.28.0-6.el6.x86_64 @base
Dep-Install ORBit2-2.14.17-5.el6.x86_64 @base
... snip ...在某些情况下,我认为这是很有帮助的。
发布于 2015-05-11 08:49:55
如果您卸载软件包,那么您就有可能删除已经存在但碰巧被升级的东西。通常,您应该使用yum (或等效的)来管理包,这允许您降低包的级别。这将删除新的包,并降低现有包的级别。参见例如如何使用yum和rpm安全地降低或去除胶质细胞。
选择要降级的包的名称可以使用rpm -qa的输出进行,格式化后可以简单地选择给定的日期。例如(请参阅https://unix.stackexchange.com/questions/2291/centos-list-the-installed-rpms-by-date-of-installation-update),您可以使用
rpm -qa --last作为一种更详细的方法,您可以使用--queryformat选项和:date选项来精确地格式化日期(它使用strftime)。
在这两种情况下,您都可以创建一个脚本,从rpm的输出中提取包名,并根据需要使用那些带有yum (甚至rpm)的包进行操作。
在降级时,要记住一件奇怪的事情:使用前一个日期将软件包的安装日期修改为当前日期,而不是完全撤消。
发布于 2015-05-12 13:55:17
安装在单个事务中的所有包都具有相同的RPMTAG_INSTALLTID标记值。
使用
rpm -qa --qf '[%{name}\t%{installtid:date}\n]'若要查找作为yum组安装的一部分安装的所有包,请执行以下操作。
发布于 2020-12-16 00:07:34
Yum为您提供了撤消命令(即yum history undo #blah )的规定。
在这种情况下,要删除今天安装的所有包,可以运行:
yum history undo 69
yum history undo 68
yum history undo 67https://stackoverflow.com/questions/30161222
复制相似问题