1.程序包编译
程序包编译安装: (需要gcc、make工具)
建议安装 包组: development tools
Application-VERSION-release.src.rpm –> 安装后,使
用rpmbuild命令制作成二进制格式的rpm包,而后再安装
源代码–>预处理–>编译(gcc)–>汇编–>链接–>执行
源代码组织格式:
多文件:文件中的代码之间,很可能存在跨文件依赖关系
C、 C++: make (项目管理器, configure –>
Makefile.in –> makefile)
java: maven
C代码编译安装三步骤: (各平台的区别,查看目录下install 文档)
1. 获取源码并展开归档,进入对应文件夹(勿切换去其他文件夹)
2、 ./configure:
(1) 通过选项传递参数,指定启用特性、安装路径等;执
行时会参考用户的指定以及makefile.in文件生成makefile
(2) 检查依赖到的外部环境
3、 make:根据makefile文件,构建应用程序
4、 make install:复制文件到相应路径
开发工具:
autoconf: 生成configure脚本
automake:生成Makefile.in
注意:安装前查看INSTALL, README
开源程序源代码的获取:
官方自建站点:
apache.org (ASF)
mariadb.org
…
代码托管:
SourceForge.net
Github.com
code.google.com
c/c++编译器: gcc (GNU C Complier)
编译C源代码:
前提:提供开发工具及开发环境
开发工具: make, gcc等
开发环境:开发库,头文件
glibc:标准库
通过“包组”提供开发组件
CentOS 6: "Development Tools",
"Server Platform Development",
第一步: configure脚本
选项:指定安装位置、指定启用的特性
–help: 获取其支持使用的选项
选项分类:
安装路径设定:
–prefix=/PATH: 指定默认安装位置,默认为/usr/local/
–sysconfdir=/PATH:配置文件安装位置
System types:支持交叉编译
Optional Features: 可选特性
–disable-FEATURE
–enable-FEATURE[=ARG]
Optional Packages: 可选包,
–with-PACKAGE[=ARG],依赖包
–without-PACKAGE,禁用依赖关系
第二步: make
第三步: make install
安装后的配置:
(1) 二进制程序目录导入至PATH环境变量中;
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
(2) 导入库文件路径
程序安装完成后,在安装路径下有lib目录,将此目录地址导入系统,即
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中;
eg: 添加apache 的库地址
vim /etc/ld.so.conf.d/http2.conf (新建http2.conf )
文件中添加 /usr/local/apache2/lib
即可
让系统重新生成缓存:
ldconfig [-v]
(3) 导入头文件
程序安装路径下有include目录,即为头文件目录,一般需要软链接至
/usr/include中
基于链接的方式实现:
ln -sv
eg:apache 头文件添加:
进入apache 安装路径下的include
ln -sv /usr/local/http2/include /usr/include/http2
(4) 导入帮助手册
程序安装完成后,在安装路径下有man目录,将此路径加入man配置文件即可
编辑/etc/man.config|man_db.conf文件
添加一个MANPATH
apache 编译安装示例:
1. 安装编译工具
2. 获取源码文件
3. 解压源码
4.当前目录下,进入httpd-2.2.29目录,查看install 文档(官方安装指南)
5.当前目录下执行 ./configure
6.当前目录下,继续执行 make
7.当前目录下,继续执行 make install
8.添加PATH:添加 /etc/profile.d/http.sh,加入apachectl程序路径
9.添加头文件
9. 添加man 帮组路径
编辑/etc/man.config 或 /etc/mandb.conf, 加入程序对应的man路径
10.开启服务
11.测试
原文地址:http://195175108.blog.51cto.com/10167819/1854998