CentOS gcc多版本的卸载与修复

问题场景:

CentOS  7装有4.4.5,4.4.7,4.8.5 三个版本的gcc,当前版本为4.4.7,通过gcc –version命令查看得到。4.4.7版本缺少libgmp.so.3文件,编译fastdfs libfastcommon-1.0.35包时发现该问题,

[root@localhost libfastcommon-1.0.35]# ./make.sh

/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/cc1: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory

./make.sh:行15: ./a.out: 没有那个文件或目录

cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o hash.o hash.c 

/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/cc1: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory

make: *** [hash.o] 错误 1

另外,在/usr/libexec/gcc/x86_64-redhat-linux/4.4.7中,ldd cc1时也能发现该信息。

解决:

决定清除有问题的老版本,保留4.8.5(该版本为系统所带,其他低版本可能为某种需要被他人安装)。

1、  找到已安装的包

rpm  –q gcc

2、  删除已经安装的有问题的低版本

rpm  -e [包名]

包名为上一步中显示的包,形如:

gcc-4.8.5-4.el7.x86_64

重复数次,将所有低版本清除。

3、  找到要恢复的gcc4.8.5 rpm安装包

[root@localhost 4.4.7]# ls /usr/nariis/Packages/*gcc*

/usr/source/Packages/compat-gcc-44-4.4.7-8.el7.x86_64.rpm

/usr/source/Packages/compat-gcc-44-c++-4.4.7-8.el7.x86_64.rpm

/usr/source/Packages/gcc-4.8.5-4.el7.x86_64.rpm

/usr/source/Packages/gcc-c++-4.8.5-4.el7.x86_64.rpm

/usr/source/Packages/gcc-gfortran-4.8.5-4.el7.x86_64.rpm

/usr/source/Packages/gcc-gnat-4.8.5-4.el7.x86_64.rpm

/usr/source/Packages/gcc-objc-4.8.5-4.el7.x86_64.rpm

/usr/source/Packages/gcc-objc++-4.8.5-4.el7.x86_64.rpm

/usr/source/Packages/libgcc-4.8.5-4.el7.x86_64.rpm

4、  强制恢复安装gcc4.8.5

rpm  -ivh –force gcc-4.8.5-4.el7.x86_64.rpm

卸载再装,会因为其他包依赖该库,不能被卸载,故使用--force参数强制安装。

5、  安装后查看gcc版本,发现已恢复为4.8.5

[root@localhost 4.4.7]# /usr/bin/gcc --version

gcc (GCC) 4.8.520150623 (Red Hat 4.8.5-4)

Copyright © 2015 Free Software Foundation, Inc.

本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;

包括没有适销性和某一专用目的下的适用性担保。


恢复前为4.4.7。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在CentOS中,可以使用以下命令来卸载gcc: ``` sudo yum remove gcc ``` 这个命令将卸载默认安装的gcc版本。 如果你安装了多个版本gcc,你可以使用以下命令来列出已安装的gcc版本: ``` yum list installed | grep gcc ``` 然后,你可以使用以下命令来卸载指定版本gcc: ``` sudo yum remove gcc-<version> ``` 请将`<version>`替换为你想要卸载gcc版本号。 注意:在卸载gcc之前,请确保你有备份你的系统,并且你知道你正在做什么。在卸载gcc之后,一些软件可能会受到影响,因此请谨慎操作。 ### 回答2: 在CentOS卸载GCC可以按照以下步骤进行: 1. 首先,使用root权限登录到系统中。 2. 打开终端窗口,在命令行中输入以下命令以确保GCC已安装在系统中:gcc -v 如果系统中已经安装了GCC,继续进行下一步。如果没有安装GCC版本较旧,可以使用以下命令安装GCC:yum install gcc 3. 使用以下命令列出GCC的所有已安装组件和软件包:rpm -qa | grep gcc 4. 根据列出的软件包列表,使用以下命令之一卸载GCC及其相关软件包: - 如果软件包是以gcc开头的,可以使用以下命令卸载:yum remove gcc* - 根据软件包的全名,例如gcc-4.8.5-4.el7.x86_64,可以使用以下命令卸载:yum remove gcc-4.8.5-4.el7.x86_64 5. 输入y并按下回车键以确认卸载过程。 6. 等待卸载完成,系统将自动删除GCC及其相关软件包。 7. 最后,您可以再次使用以下命令来确保GCC已成功卸载:rpm -qa |grep gcc 如果该命令不显示任何输出,那么GCC已经成功卸载。 请注意,在卸载GCC之前,确保您不再需要它,并且在卸载之后,如果您需要重新安装GCC,可以使用相同的步骤重新安装。 ### 回答3: 要卸载CentOS上的GCC,可以按照以下步骤进行操作: 1. 打开终端,以root用户身份登录。 2. 输入以下命令以查看已安装的GCC软件包: ``` rpm -qa | grep gcc ``` 3. 根据输出的结果,选择要卸载GCC软件包,例如gcc-4.8.5-39.el7.x86_64。 4. 输入以下命令以卸载选定的GCC软件包: ``` yum remove gcc-4.8.5-39.el7.x86_64 ``` 5. 终端将显示要卸载的软件包及其依赖关系,并要求您确认操作。输入“y”并按回车键继续。 6. CentOS将自动卸载选定的GCC软件包及其依赖项,此过程可能需要一些时间。 7. 卸载完成后,终端将显示卸载的软件包数量,并提示您是否要删除依赖项。根据需要选择是否删除依赖项。 8. 如果您还希望彻底删除GCC及其相关组件,可以使用以下命令: ``` yum autoremove ``` 9. 终端将显示要删除的软件包及其依赖项,并要求您确认操作。输入“y”并按回车键继续。 10. CentOS将自动删除选定的软件包及其依赖项,此过程可能需要一些时间。 11. 完成后,终端将显示删除的软件包数量。 通过上述步骤,您可以在CentOS上成功卸载GCC。请注意,操作前请确保您对系统有足够的权限,并谨慎选择要卸载的软件包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值