系统知识点linux软件安装编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统知识点linux软件安装编译相关的知识,希望对你有一定的参考价值。

Linux上面的软件几乎都是经过GPL的授权,所以每个软件几乎均提供源代码,并且你可以自行修改该程序代码,以符合你个人需求。

 

基础知识:

可执行文件:

Linux系统上面一个文件能不能被执行看的是有没有可执行的那个权限,不过真正识别的可执行文件其实二进制文件,如/usr/bin/passwd,/bin/touch

注意:shell script并不是可执行文件,它只是利用shell这个程序的功能进行一些判断式,而最终执行的除了bash提供的功能外,依然调用一些已经编译好的二进制程序来执行。

 

通过file命令可以查看其是否可执行文件。

 

程序生成过程:开放源码---编译程序---可执行文件

技术分享

函数库:

函数库分静态(.a)和动态函数库(.so),程序执行过程会调用,以产生最终执行结果,类似于子程序

动态函数库不依附在源程序中,所以方便更新升级,因此大多软件调用动态函数库

函数库的管理:

Ldconfig 把常用的动态函数库加载到内存中,加快速度

/etc/ld.so.conf写入要加载的函数库的目录---执行ldconfig---同时也将记录一份在/etc/ld.so.cache

技术分享

Ldd--动态函数库解析,查看程序含有的动态函数库有哪些以及相关函数库之间的相关性

 

makeconfigure

configure为检测程序,检测的数据如下:是否有适合的编译程序可以编译本软件的程序代码,是否已经存在本软件所需要的函数库或其他需要的相关软件,操作系统的平台是否适合本软件(包含内核版本),内核的头定义文件是否存在(驱动程序必须要的检测),检测完毕后生产makefile

Make 找到makefilemakefile记录了源码如何编译的详细信息,make会自动判别源码是否经过改动了而自动更新执行文件,然后编译!

 

Tarball软件--.tar.gz/.tgz

包含源代码文件,检测程序文件,安装说明

 

软件的基础安装法(gcc):

下载Tarball软件包,解压

gcc编译:

 gcc -o 指定名称 源码

 gcc -c 1 2 //连接12主子程序进行编译

 gcc -O //优化编译

 gcc -Wall //产生详细的编译过程信息

 gcc -lm -L/lib -L/usr/lib //使用libm.so库,请到上述路径上面找

 gcc -lm -I/usr/include //去指定路径搜索相关include文件

编译完成后执行安装即可

 

日常软件管理操作:

 

安装:

1.取得源文件,放到/usr/local/src目录下面解压缩

2.取得步骤流程:查看安装说明书INSTALLREADME

3.相关属性软件安装:说明书会说明

4.建立makefile./configure 可附带些参数,自定义安装,具体--help

建议至少定义安装目录:--prefix XXXX目录,方便以后卸载此软件程序

5.编译:以make自动编译,make就是实际就是操作gcc去编译的,只是汇合在make上,简化编译流程

6.安装:make install

7.清理编译目标文件等垃圾:make clean

 

更新:

.重新下载源码编译安装覆盖

.通过patch更新源码,然后再编译安装覆盖

到对应源码的文件下面--查阅pathc file内容,对比文件的路径,定义好X为几--更新源码并且重新编译程序

Patch -pX < XXX.patch //X代表抛弃pathc file所记录的路径的前几层路径,如果直接就是当前目录直接patch的话,就全部抛掉

PS:如果很旧很旧的版本的话,就要按更新顺序一个个来。

 

删除:

1.如果源代码包有提供make uninstall就直接去源代码包make uninstall

2.如果没有提供,那么直接到你定义好的路径,把整个文件夹删除即可!这就是自定义安装的好处

3.如果当初安装没定义好的话,那么就比较麻烦了,可以通过一些第三方软件去进行彻底删除,或者明确知道它动了哪里(查查软件说明书==)的话,就删除哪里就好了

 

对于Tarball软件管理:

1.规范好,源码放在/usr/local/src下,安装在/usr/local下(但具体程序的操作就要把安装路径放入$PATH去,才能在全局自己使用,不需要绝对路径),方便以后管理

2.为安装到单独目录的软件的man page 加入man path

如:将安装的软件放置到/usr/local/sofeware中,那么在man page搜索的设置中就在/etc/man.config内的40-50行左右写入如下的一行:

MANPATH/usrlocal/sofeware/man

这样才可以使用man来查询该软件的在线文件

 

检验软件的正确性:

md5sum/sha1sum XXXX 把结果与官网的指纹编码对比即可

 

 

当然现在对于软件的管理,已经有对应的包管理软件去进行,更加方便,比如RPMYUM,日常运维中,也可常使用,但是源码编译会更加随心所欲,因此建议大家还是要学会。

本文出自 “走在产品路上的运维dog~” 博客,转载请与作者联系!

以上是关于系统知识点linux软件安装编译的主要内容,如果未能解决你的问题,请参考以下文章

linux下软件编译安装 前提和方式

Linux源代码编译安装程序

linux 9.0安装完后是否要装GCC编译器后才能安装其他的软件?

精通Linux系列Linux下常用安装服务软件源码编译安装方式与实战部署JDK环境

精通Linux系列Linux下常用安装服务软件源码编译安装方式与实战部署JDK环境

Ubuntu Linux下安装软件方法