程序包安装编译

一、编译安装三步骤(./configure -> make -> make install)

1、./configure:

    (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及        Makefile.in文件生成makefile;

        --help: 获取其支持使用的选项

    (2) 检查依赖到的外部环境,如果此时依赖的外部环境没有配置,会导致报错。第一        步报错会导致make不能执行

2、make:

    根据makefile文件,构建应用程序;

3、make install

    把二进制文件、库文件、配置文件、帮助文件复制到对应的目录中注意事项:

    configure和Makefile.in是程序员通过两个工具生成并提供给我们使用的

        开发工具:

            autoconf: 生成configure脚本

            automake:生成Makefile.in

        建议:安装前查看INSTALL,README

开源程序源代码的获取:

    官方自建站点:apache.org (ASF),mariadb.org,...

    代码托管:SourceForge,Github.com,code.google.com,...

二、编译安装httpd(httpd-2.4.16)

编译安装前提:提供开发工具及开发环境

    开发工具:make, gcc等

    开发环境:开发库,头文件,glibc(标准库)

通过“包组”提供开发组件

    CentOS 6: "Development Tools", "Server Platform Development",

1、通过浏览器下载httpd-2.2.29.tar.bz2此源代码包,并查看INSTALL文件

[root@localhost ~]# tar xf httpd-2.2.29.tar.bz2

[root@localhost ~]# cd httpd-2.2.29/

程序包管理之编译安装_编译

[root@localhost httpd-2.2.29]# more INSTALL 

 程序包管理之编译安装_编译_02

 #这里建议编译安装的时候首先读INSTALL或README文件。$ ./configure->$ make->$ make install

2、因为每个源码提供的选项不尽相同,所以建议通过./configure --help查看需要的选项

[root@localhost httpd-2.2.29]# ./configure --help

3、检查开发包组是否安装完,把缺少缺少的包组安装完

[root@localhost ~]# yum grouplist

[root@localhost ~]# yum groupinstall "Server Platform Development" -y

4、通过./configure 跟特定需要的选择通过Makefile.in开始构建生产makefile文件

[root@wlw httpd-2.2.29]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2

程序包管理之编译安装_编译_035、make通过生成的makefile文件调用预处理器,编译器等开始编译安装程序包

[root@wlw httpd-2.2.29]# make

程序包管理之编译安装_编译_04

6、make install:把二进制文件、库文件、配置文件、帮助文件复制到对应的目录中

[root@wlw httpd-2.2.29]# make install

程序包管理之编译安装_编译_05

7、编译完成启动测试

程序包管理之编译安装_编译_06

程序包管理之编译安装_编译_07

程序包管理之编译安装_编译_08

浏览器上出现It works!表示编译、启动成功。

三、编译安装后的配置

1、 导出二进制程序目录至PATH环境变量中;

    编辑文件/etc/profile.d/NAME.sh

    export PATH=/PATH/TO/BIN:$PATH

[root@wlw httpd-2.2.29]# vim /etc/profile.d/

export PATH=/usr/local/apache2:$PATH

2、导出库文件路径

    编辑/etc/ld.so.conf.d/NAME.conf

    添加新的库文件所在目录至此文件中;

    让系统重新生成缓存:

    ldconfig [-v]

[root@wlw ld.so.conf.d]# vim /etc/ld.so.conf.d/httpd2.conf

/usr/local/apache2

[root@wlw ld.so.conf.d]# ldconfig

[root@wlw ld.so.conf.d]# ldconfig -v

#查看库文件是否导入

3、导出头文件

    基于链接的方式实现

ln -s /usr/include/httpd /usr/local/apache2/include

4、 导出帮助手册

    编辑/etc/man.config文件

    添加一个MANPATH

[root@wlw ~]# vim /etc/man.config 

MANPATH /usr/local/apache2/man