我们通过 yum 在 redhat 版本 5 上安装了以下 rpm
# rpm -qa --last | head -10
kernel-headers-2.6.18-408.el5 Wed May 18 13:33:59 2016
bind-utils-9.3.6-25.P1.el5_11.6 Wed May 18 13:33:59 2016
redhat-release-5Server-5.11.0.2 Wed May 18 13:33:58 2016
nss-3.19.1-4.el5_11 Wed May 18 13:33:58 2016
nspr-4.10.8-2.el5_11 Wed May 18 13:33:58 2016
bind-libs-9.3.6-25.P1.el5_11.6 Wed May 18 13:33:58 2016
kernel-2.6.18-409.el5 Wed May 18 04:13:58 2016
我如何判断这些 RPM 是从头开始安装还是刚刚升级?
我尝试通过rpm -qi
但是从rpm -qi,如果 rpm 是从头安装或升级的,我们无法获得信息。
其次,如果升级了 rpm,那么我如何将其降级到以前的版本?
当我尝试降级时的示例:
yum downgrade openssh-server-5.3p1-117.el6.x86_64
Loaded plugins: product-id, rhnplugin, security, subscription-manager
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Downgrade Process
Only Upgrade available on package: openssh-server-5.3p1-117.el6.x86_64
Nothing to do
yum list 'openssh-server'
Loaded plugins: product-id, rhnplugin, security, subscription-manager
This system is receiving updates from RHN Classic or RHN Satellite.
openssh-server.x86_64 5.3p1-117.el6
Available Packages
penssh-server.x86_64 5.3p1-118.1.el6_8
显然(没有经验,因为我不是
yum
用户),yum
保留交易历史,您可以使用或者
获取交易列表,然后
这将告诉您安装/更新了什么等
您可以使用撤消事务
纯粹基于
rpm
命令,afaik 无法知道 rpm 是从头开始安装还是更新。我也不知道 yum 是否保留了安装后所有 rpm 的版本。如果不; 不能保证您可以撤消某个事务。假设 package-1 是从 install cd(或任何其他不再可用的存储库)安装的;然后更新到 package-2。假设您要撤消该更新事务;这只有在您有 package-1.rpm 可用时才有可能;情况并非总是如此(而且大多数情况下并非如此)。假设你想降级一个 rpm;您可以搜索(
yum search
; 或rpm 搜索或...)您想要的较低版本的 rpm 并安装该版本。这将始终有效(假设您拥有所有正确的依赖项);使用yum
,rpm
或其他。