先说个特殊的源码安装:testapp-VERSION-release.src.rpm --> 有src字样的RPM包安装后,需要使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;
一. 编译的基本知识和编译前提
C、C++中,有一个专门的项目管理工具:make,根据make的配置文件makefile来自动进行源码安装,而makefile的生成过程:(configure --> Makefile.in(相当于一个模板) --> makefile)
1)相关开发工具:
autoconf: 生成configure脚本
automake:生成Makefile.in
建议:安装前查看INSTALL,README
2)开源程序源代码的获取:
官方自建站点:
apache.org(ASF)
...
代码托管:
SourceForge
3)编译C源代码前提:提供开发工具及开发环境
开发工具:make, gcc等
开发环境:开发库,头文件,例如glibc:标准库
通过“包组”提供开发组件
CentOS 6: "Development Tools", "Server Platform Development", desktop platform development(开发有图形界面东西的时候需要)
二. C代码编译安装三步骤:
1) ./configure:
(1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指令以及Makefile.in文件生成makefile;
(2) 检查各启用特性所依赖到的外部环境;比如某个特性需要依赖外部的某个程序包,如果这个程序包不存在就会报错。
--help: 获取其支持使用的选项,不同源码支持的选项不一样
选项分类:
安装路径设定:
--prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置,不指明的话就安装在/usr/local目录下;
例如: ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2
2)make:根据makefile文件,构建二进制应用程序;
3)make install:其实相当于cp命令,把相应的文件复制到指定目录
三. 安装后的配置:
(1) 导出二进制程序目录至PATH环境变量中;
编辑文件/etc/profile.d/NAME.sh---创建一个新的
export PATH=/PATH/TO/BIN:$PATH
(2) 导出库文件路径
编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在目录至此文件中;
让系统重新生成缓存: ldconfig [-v] ---参数v是显示过程
(3) 导出头文件
基于链接的方式实现:
ln -sv ---可以导出整个目录为一个符号链接,也可以导出单个文件为一个符号链接
(4) 导出帮助手册
编辑/etc/man.config文件,添加一个MANPATH路径,例如添加MANPATH /usr/local/apache2/man