目录
RPM介绍
RPM是Red-Hat Package Manager的缩写,这一文件格式名称虽然打上了RedHat标志,但原始设计理念是开放式的,在RPM公布之前,要想在linux系统中安装软件只能采取源码包的方式安装。早期在linux系统中安装程序是一件非常困难且耗费耐心的事情,而且大多数的服务程序仅仅提供源代码,需要自行编译代码并解决很多软件依赖关系问题,因此要安装好一个服务程序,需要具备很多相关知识技能和耐心,在安装、卸载、升级软件操作时,难度都很大。
大多数开源软件都是直接以源代码形式发布,一般会被打包为tar.gz 的归档压缩文件。程序源代码需要编译为二进制可执行文件后才能够运行使用。源代码的基本编译流程为:
1:使用tar命令解压缩后运行./configure命令检查编译环境,生成makefile文件
2:使用make命令对makefile文件进行编译,生成可执行文件
3:使用make install命令将可执行文件安装到计算机中
RPM机制是为解决这些问题而设计的,有点像Windows系统中的控制面板,会建立统一的数据库文件,详细记录软件信息并能够自动分析依赖关系。目前RPM的优势已经被公众所认可,使用范围也不仅仅局限在红帽系统中了,在OpenLinux、Turbo Linux等Linux的分发版本都有采用。RPM主要用来安装、卸载、升级、校验、管理软件
RPM软件包
一般镜像文件里都有rpm包,基本上都是以下格式
dhcp-4.2.5-58.el7.x86_64.rpm
bind-9.9.4-50.el7.x86_64.rpm
openssh-7.4p1-11.el7.x86_64.rpm
samba-common-4.6.2-8.el7.noarch.rpm
具体文字解释:
dhcp、bind、openssh、都是软件包名称;4.2.5-58、9.9.4-50是软件版本号和发布次数(-后面是发布次数);el7 EL是Red Hat Enterprise Linux的缩写,el7表示Red Hat 7.x或CentOS 7.x系统版本;x86_64表示支持32位和64位架构(noarch表示不挑架构)
RPM命令
rpm命令参数及作用
rpm安装、卸载、升级
rpm [参数] rpm包名
-i :安装指定的rpm包
-e :卸载已安装的rpm包
-v :显示较详细的信息
-h :以 “#” 显示进度情况
-U :升级指定的rpm包,软件包版本必须比当前系统中安装的软件包版本高才能正确升级
若当前系统未安装指定的软件包,则直接安装
-F :更新指定的rpm包,若当前系统未安装指定的软件包,则放弃安装
rpm查询
查询已安装的软件
rpm -q 软件名称 :查询指定的软件包在系统中是否被安装
附加参数:
rpm -qa 软件名称 :查询系统中已安装的所有软件包
rpm -qi 软件名称 :查询系统中已安装的软件包详细描述信息
rpm -ql 软件名称 :查询系统中已安装软件包里所含的文件列表
rpm -qR 软件名称 :查询该软件的所有依赖包
rpm -qs 软件名称 :查询该软件中所有文件的状态
rpm -qc 软件名称 :查询该软件所有的配置文件
rpm -qd 软件名称 :查询该软件所有的说明文件
rpm -qf 文件名称 :查询系统中指定文件所属的软件包
查询未安装的rpm包
rpm -qp rpm包名 :查询rpm包文件中的信息,一般用于在未安装前了解软件包中的信息,如软件名称、版本信息、硬件平台等
附加参数:
-i、-l、-R、-s、-c、-d
对应的意思是和查询软件一样的
rpm校验
校验是通过已安装的文件和软件包中的原始文件进行比较来判断是否被修改
校验主要是比较文件的尺寸、MD5校验码、文件权限、所有组、所有者等等
rpm -V 软件名称 :校检指定的软件包
rpm -Vf 文件名称 :校检指定的文件是否被修改
rpm -Va 软件名称 :校检所有已安装的软件包
rpm -Vp rpm包名 :根据一个rpm包来校检
使用命令进行校检时,如果一切正常 文件没有任何变化,就不会有任何输出,如果有不一致的地方就会显示出来,通过八个字符输出:
S :文件的大小
M :文件的权限(rwx)
5 :文件的MD5校检码
D :设备的主从代码
L :文件的路径
U :文件的所有者
G :文件的所有组
T :文件的修改时间
举例:
[root@server ~]# rpm -V dhcp
[root@server ~]#
没有修改就什么都没显示
[root@server ~]# vim /etc/dhcp/dhcpd.conf
随便修改一下内容
[root@server ~]# rpm -V dhcp
S.5....T. c /etc/dhcp/dhcpd.conf
校检内容 文件类型 文件路径
“S.5....T.”中显示了什么字符就说明对应的地方被修改了
文件类型分为:
c :配置文件
d :普通文档
l :授权文件
r :描述文件
rpm附加命令
--force :强制操作,如强制安装或卸载
例如:rpm -ivh --force rpm包名
--requires :显示该包的依赖关系
--nodeps :忽略依赖关系
--test :进行安装测试,但不安装
更多参数可以通过 rpm -? 查看
RPM常用命令
安装软件 | rpm -ivh RPM包名 |
升级软件 | rpm -Uvh RPM包名 |
卸载软件 | rpm -evh RPM包名 |
查询软件是否安装 | rpm -qa | grep 软件名称 |
查询软件包详细信息 | rpm -qpi RPM包名 |
查询软件包文件信息 | rpm -qpl RPM包名 |
查询文件属于哪个RPM包 | rpm -qf 文件名 |
校检软件 | rpm -V 软件名称 |