【软件包管理RPM】

rpm基本概述

什么是rpm

RPM全称RedHat Package Manager 缩写,由红帽开发用于软件包的安装,升级,卸载与查询。

rpm包名组成部分

在这里插入图片描述
在我们刚开始rpm包,建议先从本地镜像中获取rpm但实际生产环境中大多数是通过互联网方式获取rpm包,或者搭建企业私有包管理平台

其他类型的安装包

在linux中除了rpm格式类型的包,还存在一些其他类型的软件包

分类安装版本
rpm包预先编译打包,安装简单软件版本偏低
源码包手动编译打包,安装繁琐软件版本随意
二进制包解压及可使用,安装简单不能修改源码

rpm包管理命令

rpm安装软件包

-i			安装软件包
-v			显示安装过程
-h			显示安装进度条

1.使用rpm命令安装本地路径下软件包

[root@localhost ~]# rpm -ivh ./tree-1.6.0-10.el7.x86_64.rpm

2.使用rpm命令安装互联网上的软件包

[root@localhost ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm

rpm依赖包安装

包依赖是指A–>依赖–>B,B–>依赖–>C,而C–>依赖–>A。当我们需要安装的rpm类型包出现了依赖关系如何处理:

[root@localhost ~]# rpm -ivh samba-4.8.3-4.el7.x86_64.rpm 
错误:依赖检测失败:
	libCHARSET3-samba4.so()(64bit) 被 samba-0:4.8.3-4.el7.x86_64 需要
	libCHARSET3-samba4.so(SAMBA_4.8.3)(64bit) 被 samba-0:4.8.3-4.el7.x86_64 需要
	libauth-samba4.so()(64bit) 被 samba-0:4.8.3-4.el7.x86_64 需要
	等等

1.尝试安装依赖包samba-common-tools

[root@localhost ~]# rpm -ivh samba-common-tools-4.8.3-4.el7.x86_64.rpm 
错误:依赖检测失败:
	libCHARSET3-samba4.so()(64bit) 被 samba-common-tools-0:4.8.3-4.el7.x86_64 需要
	libCHARSET3-samba4.so(SAMBA_4.8.3)(64bit) 被 samba-common-tools-0:4.8.3-4.el7.x86_64 需要
等等

2.尝试安装依赖包samba-libs

[root@localhost ~]# rpm -ivh ./samba-libs-4.8.3-4.el7.x86_64.rpm	

3.再次尝试安装依赖包samba-common-tools

[root@localhost ~]# rpm -ivh samba-common-tools-4.8.3-4.el7.x86_64.rpm 

4.最后尝试安装samba主程序包

[root@localhost ~]# rpm -ivh ./samba-4.8.3-4.el7.x86_64.rpm	

注意:由于rpm工具安装rpm依赖关系太强,所以通常我们用yum来解决

rpm升级软件包

下载zabbix-agent软件包,分别下载3.0低版本,然后下载4.2高版本来进行测试

wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm

wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm
1.先安装zabbix-agent-3.0低版本
[root@localhost ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm

2.尝试使用rpm -ivh安装zabbix-agent-4.2高版本(会出现报错)
[root@localhost ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm 

3.使用rpm -Uvh升级zabbix-agent-4.2版本(成功升级安装)
[root@localhost ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm 

rpm查询软件包

选项描述
rpm -q查看指定软件包是否安装
rpm -qi查看指定软件的详细信息
rpm -qc查询指定软件包的配置文件
rpm -qf查询文件或目录隶属于哪个rpm软件
rpm -ql查看指定软件包安装的目录,文件列表
rpm -qa查看系统中已安装的所有rpm软件包列表
1.查询vsftpd这个rpm是否安装
[root@localhost ~]# rpm -q vsftpd
未安装软件包 vsftpd

2.模糊查找系统已安装的rpm包
[root@localhost ~]# rpm -qa

3.查询vsftp软件包相关信息
[root@localhost ~]# rpm -qi vsftpd

4.查询vsftp软件包所安装后在系统中生成的文件路径
[root@localhost ~]# rpm -ql vsftpd

5.查询vsftpd软件包的主配置文件
[root@localhost ~]# rpm -qc vsftpd

6.查询配置文件或系统命令是由哪个rpm包提供
[root@localhost ~]# rpm -qf /etc/vsftpd/ftpusers
[root@localhost ~]# rpm -qf /usr/lib/systemd/system/vsftpd.target

7.查询未安装的rpm包会产生哪些文件
[root@localhost ~]# rpm -qlp ./zabbix-agent-4.2.0-1.el7.x86_64.rpm
8.如何卸载rpm包? ( 不太建议生产环境执行卸载操作 )
[root@localhost ~]# rpm -e zabbix-agent #卸载软件(清理对应的文件)
[root@localhost ~]# rpm -qa zabbix-agent #检查是否已卸载

rpm包管理总结

1.如何查询uil-linux软件包安装了那些文件
[root@localhost ~]# rpm -ql util-linux


2.如何查询mkdir命令是由哪个rpm软件包安装的
[root@localhost ~]# rpm -qf $(which mkdir)
coreutils-8.22-23.el7.x86_64
rpm -qf 有一个弊端: 只能查看系统中已经存在的命令和文件—>对应的软件包?
当真正要查询一个系统中不存在的命令,或文件,我们会选择使用 yum provides 去查询

3.安装.rpm软件包时,-i,-U选项有何区别
-i 安装一个rpm包
-U 升级一个rpm包()

4.选项:
-ivh 安装一个rpm包,并显示详细信息,同时打印安装的进度条
-Uvh 升级一个rpm包,并显示详细信息,同时打印安装的进度条 (如果软件不存在则按安装操作)
-e	卸载软件包
-q	查询软件包
-qa	查询所有已安装的软件包
-ql	查询软件的存放路径	(所有的文件)
-qc	查询软件的配置文件
-qf	查询系统中已存在的命令或者文件 所属那个rpm包提供
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿赵的小记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值