我在工作中的机器上意外更新了GCC版本。我们使用一个非常具体的设置,需要GCC 4.8.2,所以我必须恢复GCC更新。我在CentOS 7上运行。
答案 0 :(得分:3)
打印yum历史记录并找到不必要的更新:
yum history
它打印的内容如下:
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
8 | root <root> | 2011-10-03 14:40 | Install | 1
7 | root <root> | 2011-09-21 04:24 | Install | 1 ##
6 | root <root> | 2011-09-21 04:23 | Install | 1 ##
5 | root <root> | 2011-09-16 13:35 | Install | 1
4 | root <root> | 2011-09-16 13:33 | Erase | 1
3 | root <root> | 2011-09-14 14:36 | Install | 1
2 | root <root> | 2011-09-12 15:48 | I, U | 80
1 | System <unset> | 2011-09-12 14:57 | Install | 1025
比撤消它:
yum history undo 8
如果旧软件包不再存在于repo中,则撤消命令可能会失败,因此您可以尝试包含存档库。
答案 1 :(得分:1)
经过几个小时的实验,这是我找到的解决方案:
解决方案是从.rpm文件安装gcc-4.8.2。幸运的是,它看起来像yum缓存以前的rpm文件。
我去了/var/cache/yum/x86_64/7/updates/packages
,我发现了一堆.rpm包,包括gcc-4.8.2 rpm文件!
我试图运行sudo yum localinstall gcc-4.8.2-16.2.el7_0.x86_64.rpm
,但是它说它的某些依赖项是错误的版本。
为了解决这个问题,我在有问题的依赖项上调用了sudo yum remove
,即libgomp和cpp。然后,我使用位于yum缓存目录中的4.8.2 .rpm文件为这两个软件包调用了sudo yum localinstall
。
然后我再次运行sudo yum localinstall gcc-4.8.2-16.2.el7_0.x86_64.rpm
,它成功了!