8.2.4 使用RPM包安装gcc

在CentOS和RedHat中,想要安装gcc工具,首先需要将原先的安装光盘载入光驱中。如果读者使用的是VMware虚拟机,则需要确认当前虚拟机设置中已经载入了安装光盘(ISO文件),如图8-6所示。

确认光盘确实已经挂载后,进入光盘中放置RPM包的目录。以下目录是本书中用于演示使用rpm安装的默认目录,后面不赘述。


  1. #
  2. 如果是CentOS
  3. 系统则进入misccd/CentOS
  4. 目录,本演示使用CentOS
  5. [root@localhost ]# cd misccd/CentOS
  6. #
  7. 如果是RedHat
  8. 系统则进入misccd/Server
  9. 目录
  10. #[root@localhost ]# cd misccd/Server

8.2.4 使用RPM包安装gcc - 图1

图8-6 给虚拟机添加光驱设备

使用以下的命令安装gcc,这里需要注意的是,如果你使用的Linux的版本号不是5.5,则有可能你看到的包的版本和此处的演示有所不同除此之外是完全一致的,读者可以输入软件的名称,并在第一个“-”字符后,使用Tab键自动补全后面的内容(即软件版本)。从图8-7所示的输出内容可以看出,由于Failed dependence的原因,安装并没有成功。RPM提示需要安装cpp、glibc-devel和libgomp三个包,也就是说,在安装glibc-devel的时候遇到了依赖glibc-headers的问题,不过libgomp和cpp并不存在依赖关系,可以正常安装。

8.2.4 使用RPM包安装gcc - 图2

图8-7 使用rpm安装gcc(一)

接下来安装glibc-headers时,又需要先安装kernel-headers。安装kernel-headers的时候没有遇到什么问题,如图8-8所示。

8.2.4 使用RPM包安装gcc - 图3

图8-8 使用rpm安装gcc(二)

解决了最下层的软件依赖关系后,可以继续从下往上安装。这里先后安装了kernel-headers、glibc-headers、glibc-devel,至此,已经解决了所有依赖关系,现在可以安装gcc了,如图8-9所示。

从以上的安装过程中可以看出,安装gcc的过程中遇到的依赖关系如下:


  1. gcc-4.1.2-48.el5.i386.rpm
  2. |
  3. |------ cpp-4.1.2-48.el5.i386.rpm
  4. |
  5. |------ glibc-devel-2.5-49.i386.rpm
  6. | |------ glibc-headers-2.5-49.i386.rpm
  7. | |------ kernel-headers-2.6.18-194.el5.i386.rpm
  8. |
  9. |------ libgomp-4.4.0-6.el5.i386.rpm

8.2.4 使用RPM包安装gcc - 图4

图8-9 使用rpm安装gcc(三)

在弄清依赖关系后,也可以用一条命令安装gcc,其中的“\”符号是为了将一条命令拆为多行。命令如下所示:


  1. [root@localhost CentOS]# rpm -ivh gcc-4.1.2-48.el5.i386.rpm \
  2. cpp-4.1.2-48.el5.i386.rpm \
  3. glibc-devel-2.5-49.i386.rpm \
  4. glibc-headers-2.5-49.i386.rpm \
  5. kernel-headers-2.6.18-194.el5.i386.rpm \
  6. libgomp-4.4.0-6.el5.i386.rpm
  7. Preparing... ######################### [100%]
  8. 1:libgomp ######################### [ 17%]
  9. 2:cpp ######################### [ 33%]
  10. 3:kernel-headers ######################### [ 50%]
  11. 4:glibc-headers ######################### [ 67%]
  12. 5:glibc-devel ######################### [ 83%]
  13. 6:gcc ######################### [100%]

最后要说明的是,依赖关系是和当前的系统环境紧密相关的。读者在动手安装gcc时,很有可能由于早先安装操作系统时过程的差异而造成软件环境差异,表现为安装同样的软件时其依赖关系不完全一致,换句话说,这里为了安装gcc又安装了其他5个包,而在不同的环境中可能需要安装更多或更少的包。