[关闭]
@1405010304geshuaishuai 2017-06-10T03:02:12.000000Z 字数 2560 阅读 752

『博客主页』

Linux CentOS 6 GCC RPM安装

Linux CentOS GCC RPM


前言

六月份的任务:搭建个人博客,先后学习了html和CSS最终仿照新浪博客的主页布局自己做了一个个人博客主页,主要是用来收集链接,把这个阶段所学习的内容记录下来。其实主要内容还是用markdown来记录,毕竟这样会节省时间而且所有页面的布局统一,其次就是对Linux的基础知识做一下回顾,真正实践一下,在大二的时候就对Linux有所了解当时学习了一些常用的命令也自己实践过,后来没怎么用了所以一些命令有所遗忘,毕竟知识如果不经常拿出来复习还是会忘的,老话说熟能生巧,这个东西只有经常使用才能不会遗忘。我有一台笔记本(我的第一台笔记本)大概是在09年购买的,内置的有线网卡已经坏掉了,去年装了Linux系统之后,无线的网卡驱动没有安装虽然只安装了有线网卡驱动但是也没有用(因为物理器件坏了)。所以这台笔记本上的Linux系统是不能上网的,其实早就有重新编译内核的想法,只是一直没有时间(毕竟没有头绪)所以一直把这件事搁置着,最近正好又开始复习Linux所以决定重新编译内核进行裁剪安装外界有线网卡的驱动。前提是得有GCC编译器才行,因为我的Linux上默认是没有安装的,所以我决定用RPM包离线安装。


准备工作

有备无患,做事前一定要做好计划与准备,倘若没有足够的准备而急于求成最终万事无成,这也是本次实践的教训,今天上午搞了一节课最终以失败告终,究其原因,没有准备久开始安装RPM包,我们知道倘若安装一个RPM包并不是找到这个包安装上就行了,大多数包都是相互依赖的,你在安装一个包的时候他会依赖另一个包,有的时候还会遇到两个包相互依赖的情况,以及安装这个RPM包所需要依赖包的版本都有要求,虽然你的系统上有它依赖的包但是版本不对此时你该怎么办,倘若系统上安装的RPM包版本高于其依赖的包又该怎么办,这些问题我都遇到了也都解决了,其中因为我是以root身份执行的把运行bash shell依赖的包给误删除了后果是命令都用不了了,最终不得不重新安装系统(这个是又笨又万能的办法)。闲话不多说,下面开始介绍准备工作:
首先去下载所需安装包,在这里我们查找所需的GCC RPM安装包:
gcc-rpm-for centos6
对应自己的系统找到相应的RPM包下载,此时我们应该点击左边的html网页链接看一下与这个RPM包相关的信息,内容如下:
gcc-info
主要依赖的几个包为binutils、cloog-ppl、cpp、glibc-devel、libgcc、libgomp等,首先运行如下命令查询一下自己主机上是否安装了这些RPM包是否附和版本要求。

  1. #rpm -q (package name)

我分别查了我的主机上安装的RPM包并做了记录如下图:
rpm packages
可以看到,我主机上没有glibc-devel这个包并且libgcc包需要升级,此时我们先去下载相应版本的RPM包,并安装和升级现有的包。找到glic-devel这个安装包查看依赖项:

glibd-devel-deps
在这里看到它依赖glibc我主机上的glibc需要升级并且主机上没有glibc-headers所以去找glic-headers这个RPM包并查看它的依赖项:
glibc-headers-deps


开始安装

从上面的图片中可以看到它依赖kernel-headers并且它的依赖包在系统上是有的所以先安装这个rpm包:

  1. #rpm -ivh kernel-headers-2.2.1.rpm

下面升级glibc,下达下面的命令:

  1. #rpm -Uvh glibc-2.12.1.192.el6.rpm

glibc-upgrade
可以直到它需要glibc-common这个安装包,所以去下载glibc-common并且一起安装,最终成功安装,此时发现版本不对,需要的版本是2.12-1.92.el6而我安装的是2.12-2.209.el6版本安装高了,后面再安装glibc-headers时它就需要2.12-1.192版本的,所以还得回退,我们直到升级很容易有-U的命令就可以很轻松的升级,但是回退该怎么办呢?上网差了一下,可以使用--force强制安装,所以强制安装后电脑上就会有两个版本的glibc了此时把不想要的删掉就可以了删除命令:

  1. #rpm -e (RPM package name)

此时会检查依赖项,倘若有程序依赖此安装包则删除不了,可以用如下命令取消检查依赖项

  1. #rpm -e --nodeps (RPM package name)

delete-extral-package
同理将glibc-common也回退到2.12-1.192版本。
到此,就可以安装glibc-headers了。
安装完glibc-headers后再安装glibc-devel它所依赖的包我们都安装完了,下一步升级libgomp这个RPM包,升级完成后就可以安装gcc啦~
gcc-install
最后下达命令:

  1. #gcc --version

查看版本号,如下:
gcc-version
至此GCC就已经安装完成了。


总结

现在再回头看看,其实RPM包安装也不是太难就是有点麻烦,前期工作做足之后后面就很简单了,从要安装的RPM包出发一直往下找依赖项一直找到最后一个你主机上没有的安装包然后从这个安装包一个一个往上安装,直到第一个安装包。
遇到了一些问题:
1.如何安装一个RPM包?

  1. #rpm -ivh (packge name)

2.安装版本如何升级?

  1. #rpm -Uih (package name)

3.安装版本过高怎么办?

  1. #rpm -ivh --force (package name)

最后删除高版本的包

  1. #rpm -e --nodeps (newest package name)

4.遇到相互依赖的包怎么安装,假如包A依赖包B,包B依赖包A?

  1. #rpm -ivh (packageA name) (packageB name)

5.遇到了相互依赖的包A已经安装此时需要升级而另一个包B没有安装该怎么办?

  1. #rpm -ivh --force --nodeps packageA_name packageB_name

整个过程:
1.到rpmfind.net去找要安装的RPM包;
2.找到后进入该包的官网
3.找到依赖包
4.查看主机中哪些包需要安装哪些包需要升级
5.倘若需要安装新的安装包重复以上1-4步骤直到没有依赖包需要升级和安装倘若升级直接升级如遇到依赖重复1-4步骤直到没有依赖包需要升级和安装
下一步计划:
内核编译。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注