如何将GCC版本从4.8.3恢复到4.8.2?

时间:2015-04-20 13:53:15

标签: linux gcc centos

我在工作中的机器上意外更新了GCC版本。我们使用一个非常具体的设置,需要GCC 4.8.2,所以我必须恢复GCC更新。我在CentOS 7上运行。

2 个答案:

答案 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,它成功了!