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实用教程》人民邮电出版社出版发行 於岳编著