rpm
rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。
概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。
1)安装:-i, --install
2)升级:-U, --update, -F, --freshen
3)卸载:-e, --erase
4)查询:-q, --query
5)校验:-V, --verify
6)数据库维护:–builddb, --initdb
语法
rpm 【选项】 【软件包】
选项
注:只列举了一些常用命令
-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或–erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或–hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或–install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或–upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。
–nodeps:忽略依赖关系
常用实例
使用rpm命令安装软件包,首先需要先挂载系统光盘
[root@linus ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
在/mnt目录下的Packages目录,就是系统的软件仓库,转到其目录下即可使用rpm进行软件安装
[root@linus ~]# ls /mnt/
CentOS_BuildTag images repodata
EFI isolinux RPM-GPG-KEY-CentOS-7
EULA LiveOS RPM-GPG-KEY-CentOS-Testing
GPL Packages TRANS.TBL
使用rpm安装软件包,需要解决复杂的依赖关系,只能根据提示安装组件,或者选择忽略依赖关系安装。
例1:安装httpd软件包的依赖关系
[root@linus Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
警告:httpd-2.4.6-67.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
/etc/mime.types 被 httpd-2.4.6-67.el7.centos.x86_64 需要
httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要
例2:忽略依赖关系安装httpd软件包
[root@linus Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm --nodeps
警告:httpd-2.4.6-67.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:httpd-2.4.6-67.el7.centos ################################# [100%]
例3:查看软件包是否安装
[root@linus /]# rpm -qa httpd
httpd-2.4.6-67.el7.centos.x86_64
例4:获得httpd软件包全名
[root@linus Packages]# rpm -q httpd
httpd-2.4.6-67.el7.centos.x86_64
例5:移除软件包
[root@linus /]# rpm -e httpd
[root@linus /]# rpm -qa httpd #再次查看,软件包已不存在