【系统知识点】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--动态函数库解析,查看程序含有的动态函数库有哪些以及相关函数库之间的相关性

make与configure:

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

Make 找到makefile,makefile记录了源码如何编译的详细信息,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.取得步骤流程:查看安装说明书INSTALL与README

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 把结果与官网的指纹编码对比即可

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

时间: 2024-12-14 11:30:47

【系统知识点】linux软件安装编译的相关文章

Linux软件管理 - 编译安装

Linux软件管理 - 编译安装 文本关键字:Linux.软件管理.configure.make.make install 一.环境准备 很多软件下载之后是一个源码包,是不能够直接运行的,需要先进行编译安装,生成可执行程序.在进行编译时,需要先使用yum安装编译工具. 1. 核心组件 必须要安装的就是gcc(GNU Compiler Collection)GNU编译器套件,其中包含了C.C++.Objective-C.Fortran.Java.Ada.Go语言前端,也包含了对应语言的库,几乎可以

linux软件安装rpm、srpm,yum功能

1.linux软件安装方式,常用的有: 1)dpkg:Debian Linux社区开发出来的,使用的linux版本有,B2F,Ubuntu等 2)RPM:最早由Red Hat公司研发出来,使用的版本有Fedora,CentOS,SUSE等. 2.RPM(RedHat Package Manager):是一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套管理机制. 3.软件安装的目录: 1)/etc:一些配置文件放置的目录 2)/usr/bin:一些可执行的文件案 3)/usr/

linux 下安装编译配置 QT

打算做嵌入式图像处理,计划方案嵌入式Linux+OpenCV+QT,昨天简单入门OpenCV今天看看QT,QT就先弄Linux下面的,回家之前争取把基本的摸通,然后能在板子上跑起来. 软件环境 Linux:Ubuntu 12.04 X86 QT:4.8.4 关于QT安装 QT的早期版本和现在版本有点变化,提供的文件也不尽相同,最新的版本为5.0,我这里用的是4.8.4,一个完整的QT应该包括QT库.IDE也就是QT creator,在Linux下的安装中,目前看到的主要有三种方法: 1..bin

Linux软件安装——软件包

Linux软件安装——软件包 摘要:本文主要学习了Linux下软件安装的相关知识. 软件包 简介 Linux下的软件包众多,且几乎都是经GPL授权.免费开源(无偿公开源代码)的.这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改. GPL,全称General Public License,中文名称“通用性公开许可证”,简单理解GPL就是一个保护软件自由的一个协议,经GPL协议授权的软件必须开源. Linux下的软件包可细分为两种,分别是源码包和二进制包. Linux源码包 实际上,

Linux软件安装

软件安装方式: 1. rpm方式 该方式软件安装本质与Windows下安装软件方式一致,就是把软件包里面的二进制代码文件复制到系统指定目录(如 C://program files) 优点:软件安装非常方便 缺点:软件的个个组成部分比较固定,不灵活,需要手动解决依赖关系; 2.yum智能方式 该方式类似360的"一键安装",较智能. 该方式条件:1>可以上网 or 通过配置把软件放到指定位置(不联网的情况下) 好处:方便 一键安装,无需考虑软件依赖 3.源码编译安装 源码文件---

Linux上安装编译工具链

在Linux上安装编译工具链,安装它会依赖dpkg-dev,g++,libc6-dev,make等,所以安装之后这些依赖的工具也都会被安装.ubuntu软件库中这么描述 Informational list of build-essential packages If you do not plan to build Debian packages, you don't need this package. Starting with dpkg (>= 1.14.18) this package

Linux温习(一)Linux软件安装及管理

Linux软件包管理系统种类 APT(Advanced Package Tool ) 包名:packagename_version_arch.deb 组成:debian-binary +control.tar.gz +data.tar.gz 常见系统:Ubuntu.Debian等 RPM(RedHat Package Management) 包名:packagename_version_arch.rpm packagename_version_arch.src.rpm 组成:spec文件+应用程

Linux软件安装——安装软件的命令

Linux软件安装——安装软件的命令 摘要:本文主要学习了如何在Linux系统中安装.更新.卸载软件. rpm命令 rpm命令用来在Linux系统上进行软件的安装. 基本语法 安装命令: 1 [[email protected] ~]# rpm -ivh 包全名 如果没有安装则安装,如果已经安装则升级: 1 [[email protected] ~]# rpm -Uvh 包全名 如果没有安装则不安装,如果已经安装则升级: 1 [[email protected] ~]# rpm -Fvh 包全名

FFmpeg在Linux下安装编译过程

转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52402759 今天介绍下FFmpeg在Linux下安装编译过程,用的是CentOS, 总体过程比较顺利,就是在ffmpeg等的时间稍长点.没什么技术难点.仅当记录. 关于FFmpeg FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包