一、源码包
1、源码包:未被编译制作成二进制格式的rpm包
2、源码包命名格式: packetname-version-release.src.rpm
3、源码包的安装:需要使用rpmbuild命令编译成为二进制的rpm包才能进行安装
4、源码包的有点:系统兼容性强
源码rpm包在指定的OS上进行编译,编译成为目标代码,在将目标代码进行汇编,成为二进制代码
5、源码包安装流程:
源码包 ---> 预处理 ---> 编译为目标代码 ---> 汇编为二进制代码 ---> 连接 ---> 执行
6、C语言程序源码编译安装三步骤:
通过项目管理器make调用编译器(gcc等),并依赖configure(脚本模板)、Makedike.in(脚本选项),makefile文件,进行源码程序的打包、构建、编译
步骤一: ./configure:
通过选项传递参数,指定启用特性、安装路径等;
执行时会根据用户的指定及Makefile.in文件生成makefile;
步骤二:make
检查各源码程序依赖的其它程序文件及外部环境;
根据makefile,构建应用程序
步骤三:make install:
将构建的二进制程序放到指定的路径,相当于cp命令、
补充:当./configure执行报错的时候,需要查看报错信息,即使处理
否则make将无法执信(如:报错没有依赖关系的外部环境,则需要安装依赖环境)
7、源码编译的相关工具
autoconf:生成./configure脚本
automake:生成Makefile.in脚本选项
8、常见编译器:
c/c++ :gcc(GNU C Complier),集成了其它编译器,能编译C及C之外的一些源代码如java
二、C源码程序编译安装示例
1、环境准备:
开发工具:make,gcc等
开发环境:开发库(glibc:标准库)、头文件
可直接以包组形式安装开发环境“
[root@localhost ~]# yum grouplist | grep Development
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Development and Creative Workstation
Development Tools
[root@localhost ~]# yum groupinstall "Development Tools"
2、获取源码程序
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41.tar.bz2
[root@localhost ~]# ls
httpd-2.4.41.tar.bz2 tree-1.6.0-10.el7.x86_64.rpm
[root@localhost ~]# tar -jxvf httpd-2.4.41.tar.bz2 -C ./
3、查看INSTALL说明及./config 选项
[root@localhost ~]# cd httpd-2.4.41
[root@localhost httpd-2.4.41]# cat INSTALL
[root@localhost httpd-2.4.41]# ./configure --help
安装路径的设定:
--prefix=/指定路径 #指定默认的安装路径
--sysconfdir=/指定路劲 #指定配置文件的安装路径
...
System types:系统类型
Optional Features:可选特性
--disable-特性
--enable-特性
Optional Packages:依赖包
--with-包
--without-包
4、编译安装
./configure:
[root@localhost httpd-2.4.41]# mkdir -p /root/httpdHome/conf
[root@localhost httpd-2.4.41]# ./configure --prefix=/root/httpdHome --sysconfdir=/root/httpdHome/config
make编译:
make # 普通编译
make -j # 多线程编译,加快编译速度
make install