简介
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]
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