程序包编译

1.程序包编译

 程序包编译安装:

 Application-VERSION-release.src.rpm --> 安装后,
使用rpmbuild命令制作成二进制格式的rpm包,而后再安装
 源代码-->预处理-->编译-->汇编-->链接-->执行
 源代码组织格式:
多文件:文件中的代码之间,很可能存在跨文件依赖关系
C、C++:make 项目管理器
configure脚本 --> Makefile.in --> Makefile
java: maven

 C语言源代码编译安装三步骤:

1、./configure
(1) 通过选项传递参数,指定启用特性、安装路径等;执
行时会参考用户的指定以及Makefile.in文件生成Makefile
(2) 检查依赖到的外部环境,如依赖的软件包
2、make 根据Makefile文件,构建应用程序
3、make install 复制文件到相应路径

 开发工具:

autoconf: 生成configure脚本
automake:生成Makefile.in
 注意:安装前查看INSTALL,README
编译安装
 开源程序源代码的获取:
官方自建站点:
apache.org (ASF:Apache Software Foundation)
mariadb.org

3.软件配置 准备环境变量

#echo 'export PATH=/app/httpd22/bin:$PATH' > /etc/profile.d/httpd22.sh  
. /etc/profile.d/httpd22.sh
#echo $PATH
#apachctl start
#ss -ntl 80端口打开即成功
#http://本机IP/
#vim /app/httpd22/htdocs/index.html
#vim /etc/man.config 
加一行
MANPATH /app/httpd22/man

2.代码托管:

SourceForge.net
Github.com
code.google.com
 c/c++编译器: gcc (GNU C Complier)
 编译C源代码:
准备:提供开发工具及开发环境
开发工具:make, gcc等
开发环境:开发库,头文件
glibc:标准库
实现:通过“包组”提供开发组件
Development Tools
Server Platform Development

3.编译安装

 第一步:configure脚本
选项:指定安装位置、指定启用的特性
--help: 获取其支持使用的选项
选项分类:
安装路径设定:
--prefix=/PATH: 指定默认安装位置,默认为/usr/local/
--sysconfdir=/PATH:配置文件安装位置
System types:支持交叉编译
 Optional Features: 可选特性
--disable-FEATURE
--enable-FEATURE[=ARG]
 Optional Packages: 可选包
--with-PACKAGE[=ARG],依赖包
--without-PACKAGE,禁用依赖关系
 注意:通常被编译操作依赖的程序包,需要安装此程序包的“开
发”组件,其包名一般类似于name-devel-VERSION
 第二步:make
 第三步:make install

4. 安装后的配置:

(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|man_db.conf文件
添加一个MANPATH

5.实验:在centos6.9源码编译httpd-2.2.34

准备工作
查看相同的软件
#rpm -qa "httpd*"
#yum remove httpd

1. 安装开发包组

#yum groupinstall "Development tools"

2.下载源码并解包

# tar xvf httpd-2.2.34.tar.bz2
# cd /usr/local/src/httpd-2.2.34

3.看说明

# cat README
# cat INSTALL 

4.生成Makefile

#cd /usr/local/src/httpd-2.2.34
#./configure --help
#./configure --prefix=/app/httpd22/ --sysconfdir=/etc/httpd22/ --enable-ssl
#echo $?
#yum install openssl-devel
#./configure --prefix=/app/httpd22/ --sysconfdir=/etc/httpd22/ --enable-ssl
#make && make install 

5.编译

# make && make install 

6. 软件配置
准备环境变量

#echo 'export PATH=/app/httpd22/bin:$PATH' > /etc/profile.d/httpd22.sh  
#. /etc/profile.d/httpd22.sh
#echo $PATH
#apachctl start
# ss -ntl          80端口打开即成功
# http://本机IP/
#vim /app/httpd22/htdocs/index.html

#vim /etc/man.config 
加一行
MANPATH /app/httpd22/man

你可能感兴趣的:(程序包编译)