简介

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
rpm命令十分强大,具体使用有如下:

  1. 查询已安装在linux系统中的rpm软件包的信息
  2. 查询rpm软件包安装文件的信息
  3. 安装rpm软件包到当前linux系统
  4. 从linux系统中卸载已安装的rpm软件包
  5. 升级当前linux系统的rpm软件包

查询/验证软件包选项:


参数

说明

-a, --all

查询/验证所有软件包

-f, --file

查询/验证文件属于的软件包

-g, --group

查询/验证组中的软件包

-p, --package

查询/验证一个软件包

–whatrequires

查询/验证软件包需要的依赖


查询选项:


参数

说明

-c, --configfiles

列出所有配置文件

-d, --docfiles

列出所有程序文档

-L, --licensefiles

列出所有许可证文件

–dump

转储基本文件信息

-l, --list

列出软件包中的文件

–queryformat=QUERYFORMAT

使用这种格式打印信息

-s, --state

显示列出文件的状态


验证选项:


参数

说明

–nofiledigest

不验证文件摘要

–nofiles

不验证软件包中文件

–nodeps

不验证包依赖

–noscript

不执行验证脚本


安装/升级/擦除选项:


参数

说明

–allfiles

安装全部文件,包含配置文件,否则配置文件会被跳过

-e, --erase=+

清除 (卸载) 软件包

–excludedocs

不安装程序文档

–excludepath=


略过以

开头的文件

–force

–replacepkgs --replacefiles 的缩写

-F, --freshen=+

如果软件包已经安装,升级软件包

-i, --install

安装软件包

–justdb

更新数据库,但不修改文件系统

–nodeps

不验证软件包依赖

–nofiledigest

不验证文件摘要

–nocontexts

不安装文件的安全上下文

–noorder

不对软件包安装重新排序以满足依赖关系

–noscripts

不执行软件包脚本

–notriggers

不执行本软件包触发的任何脚本

–oldpackage

更新到软件包的旧版本(带 --force自动完成这一功能)

–percent

安装软件包时打印百分比

–prefix=


如果可重定位,便把软件包重定位到


–relocate==

将文件从 重定位到

–replacefiles

忽略软件包之间的冲突的文件

–replacepkgs

如果软件包已经有了,重新安装软件包

–test

不真正安装,只是判断下是否能安装

-U, --upgrade=+

升级软件包

–reinstall=+

重新安装软件包

–quiet

提供更少的详细信息输出

-v, --verbose

提供更多的详细信息输出

–version

打印使用的 rpm 版本号

–scripts

列出安装/删除包中的脚本内容

–conflicts

列出与此包冲突的功能

–provides

列出此包提供的功能

–requires

列出程序包所需的功能

–changelog

列出此包的更改日志


包管理的查询功能: 命令格式

[root@localhost /]# rpm {-q|--query} [select-options] [query-options]
  • 1
RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,更为详细的具体的,请参考#man rpm 
#查询系统所有已安装的软件;
[root@localhost /]# rpm -qa
#如果分页查看,再加一个管道 |和more命令;
[root@localhost /]# rpm -qa |more
#查询系统是否安装Xorg包 
[root@localhost /]# rpm -qa |grep Xorg
#查询一个已经安装的文件属于哪个软件包;
语法 rpm -qf 文件名
[root@localhost /]# rpm -qf /usr/bin/alsa-info
alsa-utils-1.0.28-2.nd7.1.x86_64
注:文件名所在的绝对路径要指出 
#查询已安装软件包都安装到何处;
语法:rpm -ql 软件名 或 rpm rpmquery -ql 软件名
[root@localhost /]# rpm -ql Xorg
#查询一个已安装软件包的信息
语法格式: rpm -qi 软件名
[root@localhost /]# rpm -qi Xorg
#查看一下已安装软件的配置文件;
语法格式:rpm -qc 软件名
[root@localhost RPMS]# rpm -qc Xorg
#查看一个已经安装软件的文档安装位置:
语法格式: rpm -qd 软件名
[root@localhost /]# rpm -qd Xorg
#查看一下已安装软件所依赖的软件包及文件; 
语法格式: rpm -qR 软件名
[root@localhost /]# rpm -qR rpm-python
[root@localhost /]# rpm -qpl alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
#查看软件包的文档所在的位置;
语法: rpm -qpd xxx.rpm
[root@localhost RPMS]# rpm -qpd alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
#查看一个软件包的配置文件;
语法: rpm -qpc xxx.rpm
[root@localhost RPMS]# rpm -qpc alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
#查看一个软件包的依赖关系
语法: rpm -qpR alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
[root@localhost archives]# rpm -qpR alsa-utils-1.0.28-2.nd7.1.x86_64.rpm
#软件包的安装、升级、删除等;
#安装和升级一个rpm 包;
[root@localhost /]#rpm -ivh xxx.rpm 注:这个是用来安装一个新的rpm 包; [root@localhost /]#rpm -Uvh xxx.rpm 注:这是用来升级一个rpm 包;
#如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;如果您在软件包管理器中也找不到依赖关系的包;那只能通过编译他所依赖的包来解决依赖关系,或者强制安装;
语法结构:
[root@localhost /]# rpm -ivh xxx.rpm --nodeps --force 
#删除一个rpm 包;
[root@localhost RPMS]# rpm -e alsa-utils
#导入签名: [root@localhost RPMS]# rpm --import 签名文件
[root@localhost fc40]# rpm --import RPM-GPG-KEY-x86_64
关于RPM的签名功能,详情请参见 man rpm