1. 编译源代码步骤
configure、Makefile.in一般是项目管理器自动生成的,这依赖于两个开发工具:
autoconf:生成configure脚本文件;
autoconf需要结合一个配置文件来和其它命令生成configure脚本;这个配置文件告诉autoconf当前代码有哪些特性、指定哪些安装路径等,而后才能生成configure脚本;
automake:生成Makefile.in模板文件;
automake也要结合一个文件,这个指明有多少程序文件、它们的依赖关系是什么、以及使用哪一种版本的编译器等,而后才能生成Makefile.in;
Note:在安装之前查看INSTALL和README文件查看安装方法,因为不同程序包安装步骤不一样,有的程序包不需要configure,直接make后执行make install;而有的程序包不需要执行make install,只有一个二进制文件直接复制即可完成;安装开发组件
想要进行编译,提前安装开发组件
(1) ./configure(也可能是config文件)
--help:获取支持使用的选项;
(2) make
每个源代码都有专用的makefile,在make时依据这个配置文件,调用指定的预处理器做处理、调用指定的编译器做处理、编译文件的顺序等操作等;(3) make install
其实是一些脚本,实现把构建出的应用程序,分别分配到用户指定的目录中;如创建出的二进制文件放到指定的二进制目录、库文件放到指定的库目录等等,使用install拷贝命令也能实现; 2. 安装后的配置(1) 将二进制程序目录添加至PATH文件变量中,否则只能使用绝对路径才能运行程序
编辑文件/etc/profile.d/NAME.sh export PATH=/PATH/TO/BIN:$PATH(2) 导出库文件路径
编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在的目录至此文件中; 例如:/usr/local/apache2/lib ldconfig -v:重新加载库文件路径,并查看; ldconfig -p:查看已加载所有库文件路径;(3) 导出头文件
/usr/include/目录下,创建软链接; ln -s target_dir soft_link ##可以导出一个目录为所有文件链接,也可以为每一个头文件导出一个链接,然后把创建的链接输出到/usr/include/目录下,或者直接复制头文件至/usr/include/目录;(4) 导出man手册
Centos7是在/etc/man_db.conf的40到50行之间,添加一个MANPATH参数(Centos6可能是/etc/man.config); MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man 3. 编译安装实验 3.1. Centos7编译安装apache 2.2.27系统版本与软件版本
[root@GNOME-C7 ~]# cat /etc/RedHat-release CentOS Linux release 7.4.1708 (Core) [root@GNOME-C7 ~]# uname -r 3.10.0-693.el7.x86_64 ------------------------------------------------------------------ apr-1.6.3 apr-util-1.6.1 httpd-2.2.27提前安装开发环境
[root@GNOME-C7 ~]# yum groupinstall -y "Development tools" "Development and Creative Workstation"