Linux的RPM命令详解
1、linux下安装软件,软件到底有那些格式?
redhat系
- centos、suse、redflag、oracle linux 、Fedora等
- 软件格式:.rpm
debian系
ubuntu
- 软件格式:.deb
- 源码包—》tar包
安装脚本:.sh .py 等
解压就可以使用,不需要安装
srpm —-》源码类型的source rpm包—》半成品—》制作成rpm包
vim-7.4.960-1.fc24.src.rpm
2.软件包从哪里来?如何得到软件包?
- 光盘镜像文件
- 官方网站(源码包)
- 第3方资源网站
查找rpm包的网站:
- www.rpmfind.net
- rpm.pbone.net
RPM即:redhat package manager
regedit.ext 打开注册表 register edit
commercial 商业的
Community 社区
3、应用程序与系统命令的关系
文件位置
- 系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
- 应用程序:通常在/usr/bin和/usr/sbin目录中
主要用途
- 系统命令:完成对系统的基本管理工作,例如IP配置工具
- 应用程序:完成相对独立的其他辅助任务,例如网页浏览器
适用环境
- 系统命令:一般只在字符操作界面中运行
- 应用程序:根据实际需要,有些程序可在图形界面中运行
运行格式
- 系统命令:一般包括命令字、命令选项和命令参数
- 应用程序:通常没有固定的执行格式
典型应用程序的目录结构

常见的软件包封装类型

RPM的缺点:
- 安装的环境必须与打包时的环境需求一致或相当;
- 需要满足套件的相依属性需求;
- 反安装时需要特别小心,最底层的套件不可先移除,否则可能造成整个系统的问题!
SRPM
- SRPM 文件里面含有原始码( Source Code )
- SRPM 的文件名是以 *.src.rpm 这种格式来命名
- 需要编译生成RPM包后才能进行安装
RPM包管理工具
RPM软件包:
注意!!不是所有的软件都有rpm包!!
因为,rpm包是人制作出来的。很多网站只是提供源码。不提供rpm包。
主要功能:
- 查询RPM软件、包文件的相关信息
- 安装、升级、卸载RPM软件包
- 维护RPM数据库信息
指令集:是存储在CPU内部,对CPU运算进行指导和优化的硬程序。拥有这些指令集,CPU就可以更高效地运行。
Intel有x86,x86-64,MMX,SSE,SSE2,SSE3,SSSE3 (Super SSE3),SSE4.1,SSE4.2和针对64位桌面处理器的EM-64T。AMD主要是3D-Now!指令集。
4、查询已安装的RPM软件信息
格式:rpm -q[子选项] [软件名]
用法:结合不同的子选项 完成不同查询。
- -qa:查看系统中已安装的所有RPM软件包列表,常跟|grep连用!
- -qi:查看指定软件的详细信息
- -ql:查询指定软件包所安装的目录、文件列表 (安装到哪了)
- -qc:仅显示指定软件包安装的配置文件
- -qd:仅显示指定软件包安装的文档文件
查询文件/目录属于哪个RPM软件:
- -qf 文件或目录名(从哪来的)
5、查询未安装的RPM包文件
格式:rpm -qp[子选项] RPM包文件
用法:结合不同的子选项 完成不同查询
- -qpi:通过.rpm包文件查看该软件的详细信息,后面接完整包名。
- -qpl:查看.rpm安装包内所包含的目录、文件列表(将安装到哪)
- -qpc:查看.rpm安装包内包含的配置文件列表
- -qpd:查看.rpm安装包内包含的文档文件列表
6、安装或升级RPM软件 (-ivh)
格式:rpm [选项] RPM完整包文件…
- -i:安装一个新的rpm软件包。 {-i|–install} [-h,–hash]
- -v:显示过程中的详细信息;
- -h:以“#”号显示安装的进度;
- -U:升级某个rpm软件,若原本未装,则进行安装 {-U|–upgrade}
- -F:更新某个rpm软件,若原本未装,则放弃安装 {-F|–freshen}
7、卸载指定的RPM软件
格式:rpm -e 完整软件名 {-e|–erase} –》擦除
辅助选项:
- –force:强制安装所指定的rpm软件包
- –nodeps:安装、升级或卸载软件时,忽略依赖关系 no dependencies
- -h:以“#”号显示安装的进度(50个hash符号)
- -v:显示安装过程中的详细信息
8、RPM包依赖关系
- 被依赖的软件包需要先安装 ;
- 同时指定多个.rpm包文件进行安装 。
- –》即:先装A,才能装B,才能装C ……
9、卸载有依赖关系的多个软件时
- 依赖其他程序的软件包需要先卸载 ;
- 同时指定多个软件名进行卸载 。
10、忽略依赖关系
11、维护RPM数据库
RPM数据库:/var/lib/rpm目录下
故障原因:
- 非正常关机、误删除运行中的程序文件 ;
- RPM数据文件被误写或删除 。
当RPM数据库损坏时,需要进行数据库重建 :
- 格式:rpm –rebuilddb或者 rpm –initdb