首页 > 代码库 > rpm——软件包管理工具
rpm——软件包管理工具
一、软件包管理简介
1、软件包组成
我们都在windows系统中安装过软件,基本就是用鼠标点击下一步,因而有些人认为安装软件是一件非常容易的事,无论是在何种操作系统上。然而,事实并非如此。在Linux系统上安装软件的方法完全不同于在Windows上安装,至少不会是简单的用鼠标点击下一步就行了。要想在Linux系统上安装软件包,首先要了解软件包的组成。
软件包由二进制程序、库文件、配置文件、帮助文件等重要部分组成。
软件包的安装目录如下:
二进制程序:
默认:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin,
/usr/local/sbin
自定义:/usr/local/APP/{bin,sbin}
库文件(开发库和运行库):
默认:/lib64, /usr/lib64, /usr/local/lib64
自定义: /usr/local/APP/lib
配置文件:
默认:/etc
自定义:/usr/local/APP/etc或conf目录
帮助文件:
默认:/usr/share/man, /usr/local/share/man
自定义:/usr/local/APP/man
2、软件包管理
问:安装软件包时,会在很多不同的目录下存放文件,如果要卸载软件包,怎样才能卸载得干净呢?
答:如果在安装软件包时,把安装存放软件包文件的目录记录下来,卸载时,根据这个记录就能把软件包卸载得干净。这就是软件包管理器中数据库的作用了!
在Linux系统中,一般会使用软件包管理工具对软件包进行管理。
程序包管理器功能:将编译好的程序打包成一个文件或有限的几个文件,可用于实现安装、卸载、升级、查询等功能;
程序包管理器中应该包含:
(1)数据库:
程序名及版本
程序的依赖关系:X --> Y,Z (X依赖于Y、Z)
程序的功能性说明
安装生成的各文件路径及校验码
(2)程序的组成清单:
文件清单
安装卸载时运行的脚本
常见的软件包管理器有:
Debian: dpkg,(以.deb后缀结尾)
RedHat: rpm(redhat package manager),(以.rpm后缀结尾)
二、rpm包介绍
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
利用rpm软件包管理工具可以把软件包打包成rpm格式(以.rpm为后缀),rpm包可以用rpm工具统一管理。
1、rpm包命名格式
rpm包命名格式:name-version-relase.arch.rpm
name : 表示软件包的名字,包括主包名和分包名
分包机制:
核心包,主包:命名与源程序一致
bash-4.2.3-3.centos7.x86_64.rpm
子包:(在主包名后加上子包的功能性描述字串)
bash-a-4.2.3-3.centos7.x86_64.rpm
bash-b-4.2.3-3.centos7.x86_64.rpm
bash-devel-4.2.3-3.centos7.x86_64.rpm
version:包源代码的版本号
version: major.minor.release
主版本号.次版本号.源代码的发行版本号
relase :rpm自身的发行号,与程序源码的发行号无关,仅用于标识对rpm包不同制作的修订;同时,release还包含此包适用的OS
如:bash-4.2.3-3.centos5
arch :该程序包使用的硬件平台
如:x86: i386, i486, i586, i686等;
x86_64: x86_64
powerpc: ppc
noarch: 依赖于虚拟机
2、rpm包获取的途径
(1)发行的光盘或站点服务器
镜像:
http://mirrors.163.com
http://mirrors.sohu.com
(2)项目的官网
源代码
rpm包
(3)很多第三方机构或个人制作并公开发布许多rpm包(不一定安全)
http://rpmfind.net
http://rpm.pbone.net
(4)可靠的途径:EPEL(建议使用可靠的包)
Fedora-EPEL(Fedora官方维护,会验证包的合法性和可靠性)
3、rpm包的合法性验正
rpm包的合法性验正主要包括:
a、来源合法性
b、包的完整性
(包制作者制作完成之后会附加数字签名于包上)
包的制作者使用单向加密提取原始数据的特征码,而后使用自己的私钥加密这段特性码,附加原始数据后面。
验正过程:
前提:必须有可靠机制获取到包制作者的公钥;
(1)使用制作者的公钥解密加密的特征码,能解密则意味着来源合法;
(2)使用与制作者同样的意向加密算法提取原始数据的特征码,并与解密出来的特征作比对,相同,则意味着完整性没问题;
三、rpm的核心功能
1、安装程序包
本文出自 “恒则有成” 博客,请务必保留此出处http://hjqjk.blog.51cto.com/5970897/1530977