引 入


CentOS系统的软件管理主要有三种方式,rpm,yum,以及直接源码管理,前面已经详细介绍了rpm以及yum的相关用法,作为运维人员,源码安装有时也是不可避免的,下面,我们就以Apache为例简单介绍一下编译安装。


一、 什么是编译安装


  • 编译:将源代码变为机器可执行的代码文件。

  • 安装:将可执行文件安装到操作系统里。


二、 为什么要编译安装


  •  有些软件,并不能通过例如rpm这种包管理系统安装,这就需要下载源码编译安装。

  •  编译安装可以灵活地定制软件,选择自己需要的,取消自己不需要的。

  •  针对特定的硬件进行优化,编译安装可以获得更好的性能表现。


三、 如何编译安装


1.  构造编译环境

 编译工具链工具:

工具

简介

binutils

连接器、汇编器和其他用于目标文件和档案的工具

gcc

编译器,将源代码转换为机器代码

glibc

C库,提供标准例程(C函数)

上述工具可以用yum install来安装

2.  获取源码

  • 官方自建站点:

    apache.org (ASF)

        mariadb.org

    ...

  •  代码托管:

    SourceForge

    Github.com

    code.google.com

       ...

3.  根据源码构造Makefile文件
简单编译安装apache2_源码安装


上图是生成Makefile文件的主要步骤,有时我们可能需要先用autoconf来构造configure,而autoconf工具也可以用yum来安装。

4.  用make和make install把软件安装到系统    

make工具的主要用法:  

目标

用途

make all

产生预设的目标,只敲入make也可以

make clean

清除编译结果

make distclean

除了清除编译结果,也把configure所产生的 Makefile 清除掉

make install

将程序安装到系统中

make dist

将程序和相关的文档打包为一个压缩文档以供发布

make distcheck

打包并检验


四、 简单编译安装httpd


1.  获取源码

wget http://apache.dataguru.cn/httpd/httpd-2.2.31.tar.bz2

简单编译安装apache2_apache_02 通过wget命令去官网推荐的mirror下载,可以获取以.tar.bz2或以.tar.gz结尾的源码包

2.  做好编译准备

  •  解压源码包

tar xvf httpd-2.2.31.tar.bz2

简单编译安装apache2_源码安装_03

通过“tar xf”命令可以根据源码包的相应后缀名解压源码包,进入解压后的源码包,我们可以看到已经有现成的configure跟Makefile.in文件。

  •  查看安装手册

简单编译安装apache2_源码安装_04源码包安装前建议看一下INSTALL跟README文件,例如httpd的解压目录下的INSTALL文件就告诉了我们基本的编译安装步骤。

  •  阅读./configure --help帮助

简单编译安装apache2_源码安装_05

可以看到,通过./configure --help可以了解各详细的编译选项,例如可以通过--prefix来修改软件的安装位置,也可以通过--with-pcre=PATH等来指向对应需要依赖的软件,不过编译Apache2一般很简单,也就不过多介绍其他选项。

3.  开始编译

 ./configure --prefix=/usr/apache2

简单编译安装apache2_源码安装_06在此,只给configure 添加--prefix选项来修改软件安装位置,可以看到已经成功生成Makefile文件。

4.  产生预定的目标并安装到系统

make && make install

简单编译安装apache2_make_07

用make工具来完成这一步,当然,make跟make install你也可以分开两条命令来写。可以看到,在--prefix选项指定的位置上已经安装上apache2相关文件包。

5.  启动httpd,检查安装情况

[root@localhost bin]# cd /usr/apache2/bin
[root@localhost bin]# ./httpd -k start
[root@localhost bin]# curl -i localhost:80

简单编译安装apache2_apache_08

可以看到,httpd服务正在运行,说明安装成功。


后  记


简单的编译源码安装很容易,但要编译出高效的符合自己需求的软件包,这往往还需要一定的工作经验来辅助之。至此,软件包管理的rpm,yum和源码安装就介绍完了。


附:如对上面描述有疑问,期待与朋友您共同探讨。本人QQ:1084569767