程序包编译安装
*.src.rpm→安装后,使用rpmbuild命令制作成二进制格式的rpm 包,而后再安装;
源代码组织格式:
多文件:文件中的代码段之间,很有可能存在跨文件依赖关系;
各个语言的项目管理器:
C,C++:make;
Java:maven;
make执行过程:
make针对每一个源代码都有一个专用的配置文件,它会根据配置文件作出决定,比如在预处理阶段,决定调用那个预处理器如何预处理;在编译阶段决定调用哪个编译器如何执行编译,先编译哪个文件,后编译哪个文件;最后编译生成的文件要放到那些目录等;
这个配置文件就是makefile,因为不同用户的需求不同,所以决定了makefile不可能是事先存在的,需要根据需求而临时生成的,那么它是怎么生成的那:由Makefile.in生成;makefile.in就类似一个模板,用户选择好不同的参数之后根据模板而生成makefile,比如事先设置各种配置文件的安装路径等;那么问题来了:Makefile.in这个模板是怎么生成的那,它是由configure这个脚本生成的;configure脚本允许用户传递给它一些选项用来指明程序包的编译参数、启用特性、安装路径等;
大体过程:configure通过用户指定的选项然后结合Makefile.in模板来生成makefile文件;
编译安装三步骤:
./configure
通过选项传递参数,指定启用特性,安装路径;执行时会参考用户指定的参数以及Makefile.in模板生成makefile文件;
检各个启用的功能所依赖的外部环境;
make
根据makefile文件,构建应用程序;
make install:其实这一步就是把编译(构建)好的程序的文件放到相对应的目录下,使用cp命令也可以完成;
开发工具:
一般情况下源码包都会自带configure,但是也有的源码包不带,所以就需要我们自己生成它,如果手动的一步一步的编写这个就脚本无疑是很费时间的,所以就有了可以自动生成它的开发工具;
autoconf:生成configure脚本;
automake:生成Makefile.in文件;
因不同的需求而启动的功能有所不同,所以导致configure也是不同的,所以autoconf也是需要根据配置文件来生成configure脚本的;Makefile.in同理;
建议:安装前查看INSTALL、README说明文本;
开源代码获取途径:
官方自建站点
apache.org(ASF)
mariadb.org
…
代码托管
SourceForge
Github.com
code.google.com
编译C源代码
前提:提供开发工具和开发环境;
开发工具:gcc,make;
开发环境:开发库,头文件;
通过“包组”提供开发工具;
Centos 6 常用开发库:“Development Tools”,“Server Platform Development”;
Centos7 常用开发库:“Development Tools”;
第一步 ./configure
选项:指定安装位置,指定启用的特性;
--help:查看帮助;
--prefix=/PATH/TO/SOMEWHERE:指定默认安装目录;默认安装到/usr/local/
--sysconfdir=/PATH/TO/SOMEWHERE:指明配置文件安装的路径;
System Types:指明目标系统平台,可以实现交叉编译;
不同软件的源码包实现功能不同,所以选项也各有不同,根据情况随机应变;
Optional Features:可选特性;
可以启用或关闭特性,选项略;
Optional Packages:定义依赖到的程序包,跟依赖关系相关;
第二步 make
第三步 make install
安装后的配置:
导出二进制程序目录至环境变量PATH中
编辑文件:/etc/prefile.d/NAME.sh
添加export PATH=/PATH/TO/BIN:$PATH
导出库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中;
再让系统重新生成缓存:
ldconfig -[v]
导出头文件
基于符号链接的方式实现;
ln -s
导出man手册
编辑/etc/man_db.conf文件;
linux wireshark 源码编译安装 linux编译源码包
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Kali Linux环境下源码编译Snort
本文介绍,新手快速掌握源码编译Snort的方法。
Kali 源码编译 编译过程 -
Linux 源码编译安装curl
Linux 源码编译安装curl
Linux 源码 编译安装 -
linux源码编译安装git
3. 下载 Git 最新版本的源代码。8. 查看git版本。
linux git elasticsearch xml 新版本 -
FFmpeg Linux源码编译安装
FFmpeg 安装
FFmpeg 安装 -
源码编译安装redis linux 源码编译安装包
解包 tar -jxvf 如 :tar -jxvf 源代码包名.tar.bz2 -C 解压存放的目录路径解压系统应用程序存放的目录一般放在/usr/src/软件名-版本号/配置 ./configure 使用源码目录中的 configure 脚
源码编译安装redis linux linux 应用程序 可执行文件 系统管理员