程序包安装编译
一、编译安装三步骤(./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
#这里建议编译安装的时候首先读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
5、make通过生成的makefile文件调用预处理器,编译器等开始编译安装程序包
[root@wlw httpd-2.2.29]# make
6、make install:把二进制文件、库文件、配置文件、帮助文件复制到对应的目录中
[root@wlw httpd-2.2.29]# make install
7、编译完成启动测试
浏览器上出现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