在工作中,我们可能会经常用到需要源代码编译安装的程序,但是在编译完成后,会有一些问题纠结着我们,比如:编译安装的程序怎么卸载?安装完成后的安装路径在哪?配置文件在哪个位置等等一些问题,下面以编译安装httpd为例,看看能够帮大家编译安装遇到的问题

    第一步:我们要找到所需要编译安装的源码包,我的电脑上以httpd-2.2.25.tar.bz2为例,先展开需要编译安装的源码包

编译安装httpd源码包_源码包编译安装

    第二步:执行./configure脚本检查编译环境,并指定安装程序的前缀、配置文件位置以及需要开启或关闭的功能、特性、程序等

编译安装httpd源码包_源码包编译安装_02

    “--prefix==/usr/local/httpd”表示程序的二进制文件、库文件、头文件等都在“/usr/local/httpd”目录下,“--sysconfdir=/etc/httpd”指程序的配置文件位置在“/etc/httpd/”目录下,事先要确保这两个目录都不存在,“--enable-so”表示启用模块化功能;具体需要开启哪些功能或特性,需要根据实际的生产环境,结合“./configure --help”帮助文档进行定制

    第三步:直接“make”进行编译

编译安装httpd源码包_源码包编译安装_03

    第四步:执行"make install"开始安装

编译安装httpd源码包_源码包编译安装_04

    至此,httpd源码包编译安装完成,执行“/usr/local/httpd/bin/apachectl start”启动服务(此处启动报错可忽略),然后查看80端口是否处于被监听状态

编译安装httpd源码包_源码包编译安装_05

编译安装httpd源码包_源码包编译安装_06

    由于我们的程序安装路径在/usr/local/httpd目录下,所以二进制程序只能在/usr/local/httpd/bin或/usr/local/http/sbin目录下执行,系统默认找不到这些二进制程序,所以我们可以修改环境变量让系统直接找到这些二进制程序

编译安装httpd源码包_源码包编译安装_07

编译安装httpd源码包_源码包编译安装_08

    系统默认会在/usr/include/找程序相关的头文件,而我们程序的头文件在/usr/local/httpd/include/目录下,所以我们要使用符号链接的方式,让系统在/usr/include/找头文件时跳转到/usr/local/httpd/include/

编译安装httpd源码包_源码包编译安装_09

    我们的库文件也在/usr/local/httpd/lib目录中,因此,库文件也要输出,使用ldconfig让系统重新生成库文件缓存路径

编译安装httpd源码包_源码包编译安装_10

编译安装httpd源码包_源码包编译安装_11

如果还需要导出man帮助文档,修改/etc/man.config即可

编译安装httpd源码包_源码包编译安装_12

如果我们需要卸载编译安装的程序时,删除程序安装目录(/usr/local/httpd/)和配置文件(/etc/httpd)即可