![RPM 是否有一个一体化命令可以将软件包降级到旧版本?](https://linux22.com/image/54792/RPM%20%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%E4%B8%80%E4%BD%93%E5%8C%96%E5%91%BD%E4%BB%A4%E5%8F%AF%E4%BB%A5%E5%B0%86%E8%BD%AF%E4%BB%B6%E5%8C%85%E9%99%8D%E7%BA%A7%E5%88%B0%E6%97%A7%E7%89%88%E6%9C%AC%EF%BC%9F.png)
我想降低几个 RPM。有没有相应的开关组合?例如,在升级时,我通常会运行,rpm -Uvh foo.rpm
但我的理解是,-U
开关意味着它只会替换较旧的软件包......所以它不适用于降级。
答案1
使用转速
请尝试以下操作:
$ rpm -Uvh --oldpackage pkg1.rpm pkg2.rpm
摘自 rpm 手册页
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
This upgrades or installs the package currently installed to a newer
version. This is the same as install, except all other version(s) of the
package are removed after the new package is installed.
--oldpackage
Allow an upgrade to replace a newer package with an older one.
使用 YUM + 降级
您还yum
应该能够执行以下操作:
$ yum downgrade /path/pkg1.rpm /path/pkg2.rpm
使用 YUM + 历史撤消
如果您之前安装了 pkgX-1.0,然后将其升级到 pkgX-1.1,您应该能够使用yum history
查看此升级并yum history undo
恢复此升级。
摘自 yum 历史手册页
撤消/重做/回滚命令采用单个事务 ID 或关键字 Last 以及距上一个事务的偏移量(例如,如果您已完成 250 个事务,“last”指事务 250,“last-4”指事务至事务 246)。在指定事务之前,重做命令还可以采用一些可选参数。 “force-reinstall”告诉它重新安装在该事务中安装的所有软件包(通过安装、升级或降级)。 “force-remove”告诉它强制删除任何已更新或降级的软件包。
撤消/重做命令作用于指定的事务,撤消或重复该事务的工作。而回滚命令将撤消指定事务之前的所有事务。例如,如果您有 3 笔交易,其中 A 包; B和C分别安装在哪里。然后“undo 1”将尝试删除软件包A,“redo 1”将尝试安装软件包A(如果尚未安装),“rollback 1”将尝试删除软件包B和C。请注意,在“回滚 1”,您将有第四个事务,尽管事务 1 和 4 中的结束 rpmdb 版本(请参阅:yum 版本)应该相同。
要查看您的 YUM 历史记录:
$ sudo yum history | head
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
120 | install httpd | 2014-08-26 09:19 | Install | 5
119 | install pydf | 2014-08-22 17:11 | Install | 1
118 | install xsel | 2014-08-22 13:29 | Install | 1
117 | install pastebinit | 2014-08-22 13:26 | Install | 2
116 | install xorg-x11-apps-0: | 2014-08-21 11:04 | Install | 2
115 | remove adobe-release-x86 | 2014-08-21 02:18 | Erase | 1
114 | update | 2014-08-21 02:15 | E, I, O, U | 67 <
要撤消特定交易:
$ sudo yum history undo 120
Loaded plugins: fastestmirror, langpacks, refresh-packagekit, tsflags
Undoing transaction 120, from Tue Aug 26 09:19:17 2014
Dep-Install apr-1.5.1-1.fc20.x86_64 @updates
Dep-Install apr-util-1.5.3-1.fc20.x86_64 @updates
Dep-Install fedora-logos-httpd-21.0.1-1.fc20.noarch @fedora
Install httpd-2.4.10-1.fc20.x86_64 @updates
Dep-Install httpd-tools-2.4.10-1.fc20.x86_64 @updates
Resolving Dependencies
--> Running transaction check
---> Package apr.x86_64 0:1.5.1-1.fc20 will be erased
---> Package apr-util.x86_64 0:1.5.3-1.fc20 will be erased
---> Package fedora-logos-httpd.noarch 0:21.0.1-1.fc20 will be erased
---> Package httpd.x86_64 0:2.4.10-1.fc20 will be erased
---> Package httpd-tools.x86_64 0:2.4.10-1.fc20 will be erased
--> Finished Dependency Resolution
...