Linux软件包管理-rpm

1、基础

1.1、什么是rpm

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

1.2、rpm包名组成部分

如:bash-4.2.46-34.el7.x86_64.rpm

bash   : 软件名
4.2.46 : 版本
34     : 发布次数
x86_64 : 硬件平台

1.3、如何获取rpm包

1、光盘镜像获取,如地址:http://isoredirect.centos.org/centos/7/isos/x86_64/
2、互联网yum仓库获取
3、企业自有yum仓库获取

1.4、安装包类型

1.4.1、rpm包

预先编译打包,安装简单,软件版本偏低

1.4.2、源码包

手动编译打包,安装繁琐,软件版本随意

1.4.3、二进制包

解压即可使用,安装简单,不能修改源码

2、rpm-命令

2.1、命令介绍

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

2.2、示例1-rpm安装

2.2.1、安装本地下载rpm包

rpm -ivh /mnt/Package/tree-1.6.0-10.el7.x86_64

2.2.2、安装互联网的rpm包

rpm -ivh http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/tree-1.6.0-10.el7.x86_64.rpm

2.3、示例2-rpm有依赖包安装

2.3.1、问题点

包依赖是指 A-->依赖-->B,B-->依赖-->C,而C-->依赖-->A。当我们需要安装的rpm类型包出现了依赖关系应该如何处理,比如安装samba软件包。

2.3.2、依赖包报错

复制代码
rpm -ivh samba-4.10.16-5.el7.x86_64.rpm
error: Failed dependencies:
        libCHARSET3-samba4.so()(64bit) is needed by samba-0:4.10.16-5.el7.x86_64
        libCHARSET3-samba4.so(SAMBA_4.10.16)(64bit) is needed by samba-0:4.10.16-5.el7.x86_64
        libMESSAGING-SEND-samba4.so()(64bit) is needed by samba-0:4.10.16-5.el7.x86_64
        libaddns-samba4.so()(64bit) is needed by samba-0:4.10.16-5.el7.x86_64
        libads-samba4.so()(64bit) is needed by samba-0:4.10.16-5.el7.x86_64
        libaesni-intel-samba4.so()(64bit) is needed by samba-0:4.10.16-5.el7.x86_64
        libasn1util-samba4.so()(64bit) is needed by samba-0:4.10.16-5.el7.x86_64
...

# 需要一个一个解决依赖关系,这种不可取
复制代码

2.3.3、rpm使用场景和解决依赖的方法

场景:
只能用于,没有依赖的rpm安装或升级

解决方法:
由于rpm工具安装rpm包依赖关系太强,所以通常我们都是使用yum来解决

2.4、示例3-rpm升级软件

2.4.1、以zabbix-agent为演示

wget https://mirrors.aliyun.com/centos/7.9.2009/infra/x86_64/infra-common/Packages/z/zabbix-agent-4.0.9-3.el7.x86_64.rpm
wget https://mirrors.aliyun.com/centos/7.9.2009/infra/x86_64/infra-common/Packages/z/zabbix-agent-3.0.10-1.el7.x86_64.rpm

2.4.2、先安装zabbix-agent-3.0版本

]# rpm -ivh zabbix-agent-3.0.10-1.el7.x86_64.rpm 
warning: zabbix-agent-3.0.10-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f56d1621: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-agent-3.0.10-1.el7        ################################# [100%]

2.4.3、升级至zabbix-agent-4.0版本

]# rpm -Uvh zabbix-agent-4.0.9-3.el7.x86_64.rpm 
warning: zabbix-agent-4.0.9-3.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f56d1621: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-agent-4.0.9-3.el7         ################################# [ 50%]
Cleaning up / removing...
   2:zabbix-agent-3.0.10-1.el7        ################################# [100%]

2.5、示例4-rpm卸载软件包

2.5.1、查询包是否存在

]# rpm -q zabbix-agent
zabbix-agent-4.0.9-3.el7.x86_64

2.5.2、卸载包

]# rpm -e zabbix-agent

2.6、示例5-查询rpm包

2.6.1、查询参数介绍

选项       描述
rpm -q     查看指定软件包是否安装
rpm -qa    查看系统中已安装的所有RPM软件包列表
rpm -qi    查看指定软件的详细信息
rpm -ql    查询指定软件包所安装的目录、文件列表
rpm -qc    查询指定软件包的配置文件
rpm -qf    查询文件或目录属于哪个RPM软件

2.6.2、查询vsftpd这个rpm包是否安装

rpm -q vsftpd

2.6.3、模糊查找系统已安装的rpm包

rpm -qa | grep vsftpd

2.6.4、查询zabbix-agent软件包相关信息

rpm -qi zabbix-agent

2.6.5、查询zabbix-agent软件包所安装后在系统中生成的文件路径

rpm -ql zabbix-agent

2.6.6、 查询zabbix-agent软件包的主配置文件

rpm -qc zabbix-agent

2.6.7、查询配置文件或系统命令是由哪个rpm包提供

]# rpm -qf /sbin/ifconfig
net-tools-2.0-0.25.20131004git.el7.x86_64

]# rpm -qf /etc/zabbix/zabbix_agentd.conf 
zabbix-agent-4.0.9-3.el7.x86_64

2.6.8、查询未安装的rpm包会产生哪些文件

rpm -qlp zabbix-agent-3.0.10-1.el7.x86_64.rpm

 

posted @   小粉优化大师  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示