linux程序包管理之rpm

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux程序的源码编译安装方式毕竟比较繁琐,安装后也不易管理,为此linux 官方提供了专门的程序包管理器来解决这些问题

一、程序包管理器

程序包管理器:将源程序编译并打包成一个或有限的几个文件,可用于实现安装、查询、升级、卸载等功能

程序包管理器的管理实现:

①数据库,用于记录:

程序名及版本

程序之间的依赖关系

功能性说明

安装生成的各文件路径及校验码

②程序的组成清单:

文件清单

安装卸载时运行的脚本

常用程序包管理器:

Redhat:rpm(redhat package manager),其对应的程序包后缀为.rpm,对应的前端工具为yum

Debian:dpkg,其对应的程序包后缀为.deb,对应的前端工具为apt-get

rpm包的制作需要rpmbuild工具,其制作过程这里不作说明,以下详解一下rpm包的管理

二、rpm程序包

2.1、rpm包命名格式:name-version-release.arch.rpm,如httpd-2.2.15-45.el6.centos.x86_64.rpm

version:major.minor.release,同源码

release:rpm自身发行号,与源码的发行号无关,仅用于标识对rpm包不同制作的修订,同时release还包含此包适用的OS

arch:适用的硬件平台

x86: i386, i486, i586, i686等

x86_64: x86_64

powerpc: ppc

noarch: 依赖于虚拟机

2.2、rpm分包机制

一个程序体积可能很大,为了方便管理,rpm包管理器依据功能性差异,将一个程序打包成若干个包

主包(核心包):其name与源程序一致,如httpd-2.2.15-

45.el6.centos.x86_64.rpm

子包:httpd-devel-2.2.15-45.el6.centos.x86_64.rpm

httpd-tools-2.2.15-45.el6.centos.x86_64.rpm

区别:程序x依赖于y和z,若x是基于rpm包安装,则x依赖的是y和z的核心包;若x基于源码编译安装,则x依赖的是y和z的开发包

2.3、获取rpm包的途径

①官方发行的光盘、官方站点、镜像站点

②项目的官网:源代码、rpm包

③第三方机构或个人制作并公开发布许多rpm包

④额外程序包的可靠途径:EPEL,为Federa所维护

2.4、rpm包的合法性验证

rpm包的合法性包括来源合法性和包的完整性两个方面

包的制作者使用单向加密算法提取出原始数据的特征码,并使用自己的私钥加密这段特征码,附加在原始数据之后

验证过程:

前提:必须有可靠机制获取到包制作者的公钥

①使用包制作者的公钥解密那段加密的特征码,能解密则说明来源合法

②使用与制作者同样的单向加密算法提取数据的特征码,并与解密得到的特征码比对,相同则说明包完整性没问题

2.5、rpm 包管理器的使用

㈠验证程序包的合法性

我们在安装rpm 程序包之前,一般要检验其合法性,尤其是从非官方或非权威站点获得的包。当然,不检验包的合法性并不影响包的安装

①导入制作者的公钥

rpm --import /path/to/key_file

②若已导入公钥,rpm 安装程序包的过程中会自动检查其合法性

③手动检查:

rpm -K /path/to/pkg_name

rpm --checksig /path/to/pkg_name

不检查包完整性:

rpm -K --nodigest /path/to/pkg_name

不检查包的来源合法性:

rpm -K --nosignature /path/to/pkg_name

④rpm -qa gpg-pubkey* #显示所有已导入的gpg 格式的公钥

rpm -qi gpg-pubkey-NAME #显示密钥的详细信息

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@localhost ~]# mount /dev/cdrom /media #挂载centos 官网发行的光盘

[root@localhost ~]# ls /media #centos 光盘中自带了许多rpm 包,位于Packages 目录中

CentOS_BuildTag EULA imagesPackagesrepodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6

EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL

[root@localhost ~]# cd /media/Packages/

[root@localhost Packages]# ls

...

libreoffice-langpack-et-4.0.4.2-9.el6.x86_64.rpm zlib-devel-1.2.3-29.el6.x86_64.rpm

libreoffice-langpack-eu-4.0.4.2-9.el6.x86_64.rpm zsh-4.3.10-7.el6.x86_64.rpm

相关文档
最新文档