Linux源代码编译安装详解

1. 编译源代码步骤

Linux源代码编译安装详解

configure、Makefile.in一般是项目管理器自动生成的,这依赖于两个开发工具:

autoconf:生成configure脚本文件;

autoconf需要结合一个配置文件来和其它命令生成configure脚本;这个配置文件告诉autoconf当前代码有哪些特性、指定哪些安装路径等,而后才能生成configure脚本;

automake:生成Makefile.in模板文件;

automake也要结合一个文件,这个指明有多少程序文件、它们的依赖关系是什么、以及使用哪一种版本的编译器等,而后才能生成Makefile.in;

Note:在安装之前查看INSTALL和README文件查看安装方法,因为不同程序包安装步骤不一样,有的程序包不需要configure,直接make后执行make install;而有的程序包不需要执行make install,只有一个二进制文件直接复制即可完成;

安装开发组件
想要进行编译,提前安装开发组件

CentOS 6:Development Tools、Server Platform Development CentOS 7:Development Tools、Development and Creative Workstation

(1) ./configure(也可能是config文件)
--help:获取支持使用的选项;

在执行make命令之前,用户指定程序包的编译参数、启用特性、安装路径等等; configure脚本会收集当前系统上的开发环境中所依赖各组件的版本、特性等,并检查所依赖的环境是否能满足,如果检查到所依赖的程序包不存在立即报错,无法执行下一步。最后会根据用户指定信息和Makefile.in文件生成一个makefile文件; ##通用的几个选项 --prefix= :指定安装的路径 --sysconfdir= :指定配置文件目录 --enable-feature :启用某个特性 --disable-fecture :禁用特性 --with-function :启用某功能 --without-function :禁用某功能

(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"

3.1.1. 安装apr-1.6.3 [root@GNOME-C7 ~]# cd apr-1.6.3/ root@GNOME-C7 apr-1.6.3]# ./configure -prefix=/usr/local/apr-1.6.3 [root@GNOME-C7 apr-1.6.3]# make [root@GNOME-C7 apr-1.6.3]# make install 3.1.2. 安装apr-util-1.6.1 [root@GNOME-C7 apr-1.6.3]# cd ../apr-util-1.6.1/ [root@GNOME-C7 apr-util-1.6.1]# ./configure -prefix=/usr/local/apr-unil-1.6.1 --with-apr=/usr/local/apr-1.6.3 [root@GNOME-C7 apr-util-1.6.1]# make 遇到报错: xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory #include <expat.h> ^ compilation terminated. make[1]: *** [xml/apr_xml.lo] Error 1 make[1]: Leaving directory `/root/apr-util-1.6.1' make: *** [all-recursive] Error 1 解决方法:yum install -y expat-devel [root@GNOME-C7 apr-util-1.6.1]# make install 3.1.3. 安装httpd-2.2.27

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/44123ec20e806eb679beb0fe9a90c162.html