标签:rpm
RPM文件在Linux系统中的安装最为比较便捷而且常用
安装、卸载、升级和管理软件
组件查询功能
验证功能
软件包GPG和MD5数字签名的导入、验证和发布
软件包依赖处理
选择安装
rpm 命令:遵循GPL协议且功能强大的包管理,它可以建立、安装、请求、确认、和卸载软件包。间接的提升了Linux 的易用性
-e 卸载rpm包
-q 查询已安装的软件信息
-i 安装rpm包
-u 升级rpm包
--replacepkgs 重新安装rpm包
--justdb 升级数据库,不修改文件系统
--percent 在软件包安装时输出百分比
--help 帮助
--version 显示版本信息
-c 显示所有配置文件
-d 显示所有文档文件
-h 显示安装进度
-l 列出软件包中的文件
-a 显示出文件状态
-p 查询/校验一个软件包文件
-v 显示详细的处理信息
--dump 显示基本文件信息
--nomd5 不验证文件的md5支持
--nofiles 不验证软件包中的文件
--nodeps 不验证软件包的依赖关系
--whatrequire 查询/验证需要一个依赖性的软件包
--whatprovides 查询/验证提供一个依赖性的软件包
案列:
--test:不执行真正的安装过程,而仅测试
如下图如果不带--nodeps选项将无法安装
带—nodeps选项后安装执行结果
覆盖安装:重新安装并覆盖原有的文件
--replacepkgs
安装程序会检查系统,如果安装过的程序不会执行安装
--replacepkgs 覆盖安装
升级:
rpm {-U|--upgrade}[install-options] PACKAGE_FILE ...
-U :升级或安装
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
-F:升级
常用组合:-Uvh,-Fvh
--test:测试安装
--nodeps:忽略依赖关系
--force:忽略冲突,强制安装
--oldpackage:降级到旧版本;
注意:一定不要对内核执行升级;linux允许多内核共存,所有,可以直接安装多个不同版本内核;
注意:如果程序包的配置文件安装后曾被修改,升级时,新版本的文件不会覆盖老版本的配置而是把新版本的配置文件重命名为(.rpmnew)后保存
例如原系统上已经安装过zsh-4.3.10-7.el6.x86_64版本直接执行zsh-4.3.10-9.el6.x86_64.rpm的安装程序后在查看版本依旧还是zsh-4.3.10-7.el6.x86_64
使用rpm -Uvh zsh-4.3.10-9.el6.x86_64.rpm命令升级成功
降级操作示例:
卸载:
移除已经安装的程序包
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers][--test] PACKAGE_NAME ...
简单用法: rpm -e PACKAGE_NAME....
--allmatches:如果一个程序包同时安装多个版本,则此选项一次全部卸载之;
--nodeps:忽略依赖关系;
--test: 测试卸载;dry-rum模式;
注意:如果程序包的配置文件安装后曾被修改,卸载时,此文件通常不会被删除,而是被重命名加后缀(.rpmsave)
查询:
查询某包是否已经安装,以及检查安装的所有包,还可以查看某包的详细信息;
rpm {-q|--query} [select-options][query-options]
[select-options]
1、查询某包或某些包是否安装;
rpm -q PACKAGE_NMAE./
2、查询已经安装的所有包;
rpm -qa
3、查询某文件是由哪个包安装生成;
rpm -qf /PATH/TO/SOMEFILE
4、查询尚未安装的包文件的相关信息
-p
rpm -qpi PACKAGE_FILE 查询为安装的程序信息
rpm -qpl PACKAGE_FILE 查询为安装程序将生成哪些路径
[query-options]
1、查询某包的简要说明信息
rpm -qi PACKAGE_NAME
2、查询某包安装所生成的文件列表;
rpm -ql PACKAGE_NAME
3、查询某包安装完成后所生成的所有配置文件;
rpm -qc zsh
4、查询帮助文档信息
rpm -qd PACKAGE_NAME
5、查看某包制作时随版本变化的changelog信息;
rpm -q --changelog PACKAGE_NAME
6、查询某包提供的capabilities:
rpm -q --provides PACKAGE_NAME
7、查询某包所依赖的Capabilities;
rpm -q --requires PACKAGE_NAME
8、查询某包安装或卸载时执行脚本;
rpm -q --scripts PACKAGE_NAME
脚本有四类;
preinstall:安装过程开始之前执行的脚本;
postinstall:安装过程完成之后执行的脚本;
preuninstall: 卸载执行之前开始执行的脚本;
postuninstall: 卸载过程完成之后执行脚本;
校验:
查询包安装之后生成的文件是否发生了改变
rpm{-V|--verify} [select-options] [verify-options]
常见用法:rpm -v PACKAGE_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
程序包的合法性验证:
来源合法;
由我们信任的制作者提供
依赖于:制作者的数据签名,签名的作者使用自己的私钥加密程序包的特征码进行的;
内容合法:
包未被二次修改,完整性校验成功
依赖于:制作者提供的程序特征码;
验证方式:安装者用同样的特征码提取算法提取程序包的特征码,并与原作者提供的相比较;
验证其光盘中程序包的来源及完整性:
rpm --import /path/to/RPM-GPS-KEY-centos-6
使用rpm –K 验证
rpm管理器数据库:/var/lib/rpm
重建数据库:
rpm{--initdb|--rebuilddb}
--initdb: 初始化数据库,即数据库完全不存在时,可新建之;
--rebuilddb:无论当前数据存在与否,都会直接重建此库;
标签:rpm
原文地址:http://nickxu.blog.51cto.com/1207271/1631594