您的位置:首页 > 产品设计 > 产品经理

详解程序包管理RPM

2015-04-10 23:37 281 查看
一、定义 RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。二、RPM包管理的用途1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;三、程序包的组成与命名格式1、程序包的组成:
二进制程序:/bin,/sbin,/usr/bin,/usr/sbin
库文件:/lib,/lib64,/usr/lib,/usr/lib64
配置文件:/etc
帮助文件(文档):/usr/share/doc,/usr/share/man
2、RPM命名格式:
appname-VERSION-RELEASE.ARCH.rpm
appname:程序名称
VERSION:
major:主版本号
minor:次版本号
release:发行号
release:包自身的修订号及适用的OS信息
ARCH:适用的平台
x86,i386,i486,i586,i686
例如: zsh-4.3.10-9.el6.x86_64.rpm四、光盘的挂载1、 #mkdir /media/cdrom
#mount -r -t iso9660 /dev/cdrom /media/cdrom 2、验正光盘程序包

说明:如果不进行验正光盘程序包,则会因为找不到光盘中软件KEY而出现以下错误:

五、重建数据库 #rpm --initdb 初始化数据库,不存在,新建之
#rpm --rebuilddb 数据存在与否都会重建此库说明:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题。六、程序包管理RPM常用命令 1、安装:
rpm [option] PACKAGE_FILE
-i :安装程序包
-h:以#号来表示安装进度
--test:测试安装
-v,--verboss:显示详细信息
--nodeps:忽略依赖关系
--force:强制安装
--oldpackage:降级

2、升级:
rpm -U PACKAGE_FILE
-U:升级或安装upgrde
rpm -F PACKAGE_FILE
-F:升级 freshen
--test:测试升级
--nodeps:忽略依赖关系
--force:强制安装
--oldpackage:降级
#rpm -F --test zip-3.0-1.el6.x86_64.rpm 3、卸载:
rpm -e PACKAGE_NAME
-e:erase 卸载
--test:测试卸载
--nodeps:忽略依赖关系
--allmatches:同时卸载多个版本 #rpm -e --test zsh 4、查询:
rpm -q PACKAGE_NAME
[select-options]
-a:all,查询已安装所有程序包
-f:file,查询文件由哪个程序包安装生成
-p PACKAGE_FILE:查询未安装程序包安装后的文件列表
[query-options]
-q:查询系统是否已安装某程序包 -qi:查询程序包的简要
-ql:查询程序包安装文件列表
-c:configfiles,查询程序包安装的所有配置文件
-qd:查询程序包文档信息
-q --changelog:查询程序包制作时版本变化的changelog信息
-q --provides:查询程序包提供的capabilities
-q --requires:查询程序包的依赖关系
-q --scripts: 查询程序包安装或卸载时执行脚本
脚本分类:
preinstall:安装前执行脚本
postinstall:安装后
preuninstall:卸载前
postuninstall:卸载后 (1)、对系统中已安装软件的查询: 1)、查询系统已安装的软件

2)、查询文件由哪个包安装生成

3)、查询程序包安装文件列表

4)、查询软件包的简介

5)、查询程序包安装的所有配置文件

6)、查询已安装软件的文档安装位置

7)、查询已安装软件所依赖的软件包及文件

(2)、对于未安装的软件包的查看 1)、查询一个未安装程序包的版本、用途等信息

2)、查询一个未安装程序包安装后所包含的文件

3)、查询一个未安装程序包安装后的文档位置

4)、查询一个未安装程序包依赖的程序包及文件

5、校验:
查询包安装后生成的文件是否发生改变
rpm -V PANKAGE_NAME
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ

程序包的合法性验正:
来源全法:信任的制作者提供,依赖于制作者的数字签名,签名使用私钥加密程序包的特性码
内容合法:完整性校验成功,未二次修改,依赖于制作者的程序特征码,验正方式,安装者用
提取特性码与制作者提供的比较。本文出自 “蜗牛” 博客,请务必保留此出处http://linuxkingdom.blog.51cto.com/6334977/1631088
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: