RPM软件包:Red HatPackage Manager,RPM

RPM软件包是按照GPL条款发行在各个linux版本上使用。

用途
  • 可以安装、删除、升级、刷新和管理RPM软件包
  • 通过RPM软件包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个RPM软件包
  • 可以查询系统中的RMP软件包是否安装并查询其安装的版本
  • 开发者可以把自己的查询打包为RPM 软件包并发布
  • 可以实现软件包签名GPG和MD5的导入、验证和签名发布。
  • 依赖性的检查,查看是否有RPM软件包由于不兼容而扰乱系统
管理
  • 安装(添加)
  • 删除(卸载)
  • 刷新
  • 升级
  • 查询 命令语法:rpm [选项] [RPM软件包文件名称]
选项含义
-i 安装软件包
-v 输出详细信息
-h 安装软件包是打印哈希(hash)标识
--replacepkge 无论软件包是否已被安装,都重新安装软件
--test 只对按进行测试,并不实际安装
--nodeps 不验证软件包的依赖关系
--force 忽略软件包和文件的冲突
--percent 以百分百形式输出安装的进度
--excludedocs 不安装软件包中的文档文件
--ignorearch 不验证软件包的架构
--ignoresize 在安装之前不检查磁盘空间
--justdb 更新数据库,但是不要修改文件系统
--nofiledigest 不验证文件摘要
--noscripts 不执行软件包的脚本
--replacefiles 忽略软件包之间的冲突
-e 删除软件包
-U 升级软件包
-F 刷新软件包
--oldpackage 升级旧版本的软件包
-q 查询软件包
--initdb 初始化RPM数据库
--rebuilddb 从安装数据包头重建RPM数据库

例子1:忽略软件包的依赖关系,强行安装bind-9.9.4-29.el7.x86_64.rpm软件包,并显示安装过程中的详细信息和水平进度条。

[root@localhost Packages]# rpm -ivh --nodeps bind-9.9.4-72.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:bind-32:9.9.4-72.el7             ################################# [100%]
/var/tmp/rpm-tmp.qmIlvV: line 10: semanage: command not found
/var/tmp/rpm-tmp.qmIlvV: line 29: semanage: command not found
/var/tmp/rpm-tmp.qmIlvV: line 34: /usr/sbin/semanage: No such file or directory
warning: %posttrans(bind-32:9.9.4-72.el7.x86_64) scriptlet failed, exit status 127
删除RPM软件包

命令语法:rpm -e [RPM包名称]

强制删除软件包

[root@localhost Packages]# rpm -e --nodeps bind
升级和刷新RPM软件包
  • 升级RPM软件包:实际是删除和安装的组合,不管早期版本是否已被安装,升级选项都会安装该软件包

命令语法:rpm -Uvh [RPM软件包文件名称]

  • 刷新RPM软件包:系统会比较指定的软件包版本和系统已安装的版本,当有新版本更新时才会更新,当软件包之前没有安装,RPM的刷新选项将不会安装该软件包,这和RPM的升级选项不同。

命令语法:rpm -Fvh [RPM软件包文件名称]

查询RPM软件包
  • 查询指定RPM软件包是否已安装

命令语法:rpm -q [RPM包名称]

  • 查询系统中所有已安装的RPM软件包

命令语法:rpm -qa

  • 查询已安装RPM软件包的描述信息

命令语法:rpm -qi [RPM包名称]

  • 查询指定已安装RPM软件包所包含的文件列表

命令语法:rpm -ql [RPM包名称]

  • 查询RPM软件包的依赖关系

命令语法:rpm -qR [RPM包名称]

  • 查询系统中指定文件属于哪个RPM软件包

命令语法:rpm -qf[文件名]

例如:查询/etc/crontab文件属于哪个软件包

[root@localhost ~]# rpm -qf /etc/crontab
crontabs-1.11-6.20121102git.el7.noarch

注意:当指定文件时,必须指定文件的完整路径(比如/etc/crontab)

 

摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著

原文地址:https://www.cnblogs.com/mylive/p/11234384.html