一、 Linux源程序包介绍
1) linux源程序包基础
1. 遵循常用开源协议:BSD、Apache Licence 2.0、GPL、LGPL、MIT
2. 常用开发语言:C, C++, perl
3. 编译过程:预处理–> 编译 –> 汇编 –> 链接
2) Linux源程序包开发环境
1. 应用程序开发依赖:头文件:/usr/include(标明那些库可以被调用)
库文件(开发库,运行库)/lib或者/usr/lib
2. 库文件概念:是一种程序(无执行入口,不能独立执行,只能被能独立运行的程序调用 时执行)。
3. 库文件生成:源代码 –>(转换为) 二进制格式。
注:ldd命令:查看应用程序运行所依赖的库文件,使用格式:ldd /path/to/binary_file
4. ABI: Application Binary Interface :应用程序二进制接口,既操作系统内核支持的二进制接口。
5. Linux系统基础架构图:
3) Linux源程序包编译
基本特点:
1. 源程序编译前基本适用于任何架构平台环境;
2. 源程序编译后运行受架构平台环境的限制;
注:有些程序不依赖于硬件运行,依赖于虚拟机,不再依赖于低层硬件平台,后缀:.noarch
序号 |
源程序 |
编译环境 |
编译方式 |
依赖库 |
编译结果(二进制程序) |
运行条件 |
1 |
开发程序(c、c++、perl) |
linux、windows、unix |
静态编译 |
开发库、运行库 |
应用程序(含运行库) |
ABI |
2 |
开发程序(c、c++、perl) |
linux、windows、unix |
动态编译 |
开发库、运行库 |
应用程序(链接至运行库) |
运行库、ABI |
4) Linux源程序包命名格式
Name(名称)-major(主版本号).minor(次本版本号).release(修订号).tar.gz
举例:bash-4.2.3.tar.gz
5) Linux源程序包的组成
1. 二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, /usr/local/APP/{bin,sbin}
注意:有些特殊的应用程序放置于libexec目录中;有些第三方应用默认安装于/opt目录
2. 库文件(开发库、运行库):/lib64, /usr/lib64, /usr/local/lib64, /usr/local/APP/lib
3. 配置文件:/etc, /usr/local/APP/etc或conf目录
4. 帮助文件:/usr/share/man, /usr/local/share/man, /usr/local/APP/man
二、 Linux源程序包管理器介绍
1) 程序包管理器组成:
1、数据库(程序名及版本、依赖关系:X –> Y,Z 、功能性说明、安装生成的各文件路径及校验码
2、程序的组成清单(文件清单、安装卸载时运行的脚本)
2) 包管理器的功能:
打包
安装
卸载
升级
校验
数据库管理
3) 常用包管理器:
1. Debian: dpkg, 后缀.deb
2. RedHat: rpm, 后缀.rpm
3. 简介:
在 GNU/Linux( 以下简称 Linux) 操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM 软件包的 Linux 发行版本和 DEB 软件包的 Linux 发行版本。软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询。
RPM 全称为 Redhat Package Manager,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为很多 Linux 系统 (RHEL) 的既定软件标准。与 RPM 进行竞争的是基于 Debian 操作系统 (UBUNTU) 的 DEB 软件包管理工具- DPKG,全称为 Debian Package,功能方面与 RPM 相似。
三、 Linux源程序包管理器前端工具
由于开源的多态性,Linux 操作系统中的软件之间的依赖性关系处理一直令用户感到头疼。因此可利用前端工具解决包依赖关系。
常用前端工具如下:
1. dpkg –> apt-get
2. rpm –> yum
原创文章,作者:晚明伤哥,如若转载,请注明出处:http://www.178linux.com/8219