首页 > 代码库 > linux-RPM包使用小结
linux-RPM包使用小结
一) 什么是RPM?
Redhat Package Manager的简称,就是包管理工具,它是linux中使用安装最简便的一种包管理工具。
rpm 执行安装包有两种:
二进制包(Binary):二进制包可以直接安装在计算机中
源代码包(Source):源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀
rpm包管理一般由以下几个内容组成:即,安装 查询 卸载 升级 校验 库重建等组成。
rpm包的名称一般由包名、版本、子版本以及所支持的架构名这基本分组成
我们先来看下man rpm
二) RPM命令的使用总结:
1) 安装程序包:rpm [选项] 文件路径
常用选项 -i : 安装文件
-v:: 查看附加信息
-vv: 显示调试信息
-h::安装时输出hash记号
--test:仅用作测试,并不实际安装。
通常的情况下,-ivh 一起使用,这样能够比较清楚的显示安装的文件信息。
有的情况需要重新安装,怎么安装呢?
rpm --replacepkgs 文件路径
重新安装时,如果原有的配置文件被修改了,则很有可能不执行替换, 而是将应该安装生成的配置文件重命名为 .rpmnew
2)查询操作:我以gcc包为例
查询所有已经安装的包: rpm -qa
这里我查询的是gcc包的安装情况
gcc 是包名,4.4.7是版本号,4.e16是小版本号,x86_64是架构
查询某个包是否被安装: rpm -q 包名
显示已经安装
查询某个包的描述信息: rpm -qi 包名
查询某个包生成了那些配置文件: rpm -qc 包名
这里我查询的是yum包的配置文件
查询某个包生成了那些帮助文件: rpm -qd 包名
我只列出部分而已
查询与莫个包相关的脚本: rpm -q --scripts 包名
查询某个文件是由哪个包生成的: rpm -qf 文件路径
3)卸载程序包
rpm -e [选项] 包名
选项有:
--test 只执行删除的测试
--noscripts 不运行预安装和后安装脚本程序
--nodeps 不检查依赖性
没有加选项 --nodeps 意味着,连同与该包有依赖关系的包一同卸载
4)升级程序包
rpm [选项] 包的路经
升级或安装 -Uvh
纯升级 -Fvh
-F 是强制升级的意思 -v -h 和前面的安装选项一样
5)校验操作,校验的目的就是查询包安装生成的文件属性是否发生改变。
rpm -V 包名
选项有:
S: 指示文件大小变更
M: 指示文件权限、文件类型变更
5: 指示MD5值变更
D: 指示主/备设备号变更
L: 指示连接变更
U: 指示属主变更
G: 指示属组变更
T: 指示修改时间变更
其中没有修改的部分用 . 表示
6)包来源合法性与完整性的校验,对于系统安全性至关重要
首先你要导入包制作者的公钥
rpm --import 公钥路径
校验包中的文件:
rpm -K 包文件路径
其中如果不检查包的完整性
rpm -K --nodigest
不检查包的来源合法性
rpm -K --nosignature
--nopgp 不校验PGP签名
7)库重建:首先库重建的默认目录为 /var/lib/rpm
库重建有两种情况:
1 如果原先没有库,则建立一个库,如果有,则不建立新的库,用命令:
rpm --initdb
2不管原先有没有库,都建立一个,有则覆盖,没有则新建,使用命令:
rpm --rebuilddb
本文出自 “linux小盆友” 博客,请务必保留此出处http://ny0716.blog.51cto.com/9154254/1530955