简介
rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
rpm命令十分强大,具体使用有如下:
- 查询已安装在linux系统中的rpm软件包的信息
- 查询rpm软件包安装文件的信息
- 安装rpm软件包到当前linux系统
- 从linux系统中卸载已安装的rpm软件包
- 升级当前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