1、程序包编译安装流程:
src格式的源码包可以根据CPU的平台灵活编译安装使用
testapp-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;
从源代码到被使用的过程:
源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行
源代码组织格式:
多文件:文件中的代码之间,很可能存在跨文件的依赖关系;
项目管理器(代码管理工具):能够根据配置文件实现自动完成大多复杂步骤
C、C++: make (configure --> Makefile.in --> makefile)
java: maven
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2、C代码编译安装三步骤:
(1) ./configure:
(a) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;
(b) 检查依赖到的外部环境;
(2) make:
根据makefile文件,构建应用程序;
(3) make install
将生成的可执行文件或者生成的库拷贝到相应的目录
开发工具:
autoconf: 生成configure脚本
automake:生成Makefile.in文件
建议:安装前查看INSTALL,README
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3、开源程序源代码的获取:
(1) 官方自建站点:
apache.org (ASF)
mariadb.org
...
(2) 代码托管站点:
SourceForge
Github.com
code.google.com
...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4、编译安装源代码:
编译器:
c/c++: gcc (GNU C Complier)
编译C源代码:
前提:提供开发工具及开发环境
开发工具:make, gcc等
开发环境:开发库,头文件
glibc:标准库
通过“包组”提供开发组件
CentOS 6: "Development Tools", "Server Platform Development", ...
CentOS 7:"Development Tools"
第一步:configure脚本
选项:指定安装位置、指定启用的特性
--help: 获取其支持使用的选项
选项分类:
安装路径设定:
--prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/
--sysconfdir=/PATH/TO/SOMEWHERE:指定配置文件安装位置;
System types:指定编译时的系统类型,实现交叉编译(例如在x86_64平台上编译可以在PowerPC平台上运行的程序)
Optional Features: 可选特性
--disable-FEATURE 禁用指定特性
--enable-FEATURE[=ARG] 启用指定特性
Optional Packages: 可选包(依赖到的其他程序包)
--with-PACKAGE[=ARG] 必须使用指定的程序包
--without-PACKAGE 不使用指定的程序包
第二步:make
第三步:make install
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5、安装后的配置:
(1) 导出二进制程序目录至PATH环境变量中;(不指定环境变量则只能使用绝对路径了)
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
(2) 导出库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中;
让系统重新生成缓存:
ldconfig [-v]
(3) 导出头文件
基于链接的方式实现:
ln -sv
(4) 导出帮助手册
编辑/etc/man.config文件
添加一个MANPATH
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
示例:CentOS 6
1、安装编译环境gcc工具
2、查看是否提供了gcc工具
3、下载源码包,解包释放出源代码文件
4、可以查看INSTALL的安装说明
5、可以使用configure --help获取configure的使用帮助
6、安装CentOS6的开发包组,提供开发组件
7、执行configure脚本指定默认安装位置以及配置文件的位置
8、执行make,根据makefile文件,构建应用程序
9、执行make install,将生成的可执行文件或者生成的库拷贝到相应的目录
10、安装完成就可以在安装目录下看到生成的对应的目录了
11、执行bin目录下的apachectl脚本,启动httpd服务
12、查看80端口是否处于监听状态,是则表示服务已启动