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

软件包管理工具(1):RPM

2013-12-21 22:10 197 查看
RedHat及其衍生版如CentOS,Fedora都是以RPM为其软件管理工具,YUM是RPM的前端管理工具,可自动解决软件间的依赖关系,是一种线上升级工具。本文先来谈谈RPM的相关使用说明。

RPM(RedHat Package Manager)是以一种数据库记录的方式来将所需要的软件安装到Linux系统的一套管理机制。rpm是操作RPM的主要命令,而.rpm是RPM文件使用的扩展名。

rpm包的格式通常为:name-version-release.arch.rpm
即:软件名称-版本号-发行号.硬件平台.扩展名

1. RPM包的安装,升级,清除

# rpm OPTIONS /PATH/TO/RPM_FILE
-i: install 安装
-U: upgrade 若软件没有安装过,则系统将予以直接安装;若软件有安装过旧版,则系统自动升级至新版;
-F: freshen只升级安装过的软件。
-e: erase清除一个包,-e 后可只加包名
-v, -vv, -vvv: 显示详细信息, v越多越详细。
-h: 以#来显示安装进度,一个#表示2%的进度
此外还有一些rpm安装时常用的选项与参数说明:
--nodeps:忽略依赖关系,强迫安装。
--test:测试一下该软件是否可以被安装到当前的Linux 环境当中。
--replacepkgs:重新安装某个已经安装过的软件
--rebuilddb: 重建数据库/var/lib/rpm
--initdb: 新建数据库/var/lib/rpm

2. RPM包的查询

# rpm -q|--query RPM_FILE
常用选项与参数:
-q: 仅查询软件包是否安装
-qa: all, 查询所有已经安装的包
-qi: information, 查询包的摘要信息
-ql: list, 查询包安装生成的文件清单
-qc: 查询包安装生成的配置文件, 即在/etc/下的配置文件
-qd: 查询包安装生成的帮助文档,即与man有关的文件
-qf /path/to/some_file: 查询某文件是由哪个rpm安装生成的
-q --scripts查询包相关的脚本
注意:在查询本机上面的 RPM 软件相关资讯时, 不需要加上版本的名称,只要加上软件名称即可。但是查询某个 RPM 文件就必须要列出整个文件的完整档名。

3. RPM包的校验

# rpm –V RPM_FILE
可用于检查已安装的文件的完整性。
常用选项与参数:
-V: Verify,后面加的是软件包名称,若该软件所含的文件被更动过,才会列出来;
-Va:列出目前系统上面所有可能被更动过的文件;
-Vp:后面加的是文件名称,列出该软件内可能被更动过的文件;
-Vf:列出某个文件是否被更动过
例如:下图的结果是什么意思呢?



上图文件名前的c代表的是“Config file”的意思,也就是文件的类型,文件类型有底下这几类:
c:配置档 (config file)
d:文件数据档 (documentation)
g:鬼文件,通常是该文件不被某个软件所包含,较少发生。(ghost file)
l:授权文件 (license file)
r:读我文件 (read me)
最前面的八个信息是:
S:(file Size differs)文件的容量大小是否被改变
M:(Mode differs) 文件的类型或文件的属性 (rwx) 是否被改变?如是否可运行等参数已被改变
5:(MD5 sum differs) MD5 这一种指纹码的内容已经不同
D:(Device major/minor number mis-match) 装置的主/次代码已经改变
L:(readLink(2) path mis-match) Link 路径已被改变
U:(User ownership differs) 文件的所属人已被改变
G:(Group ownership differs) 文件的所属群组已被改变
T:(mTime differs) 文件的创建时间已被改变
如果当一个配置档所有的资讯都被更动过,那么它的显示就会是:
SM5DLUGT c filename
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件包 RPM