- rpm基本概述
- 什么是rpm
- rpm包名组成部分
- 其他类型的安装包
- rpm包管理命令
- rpm安装软件包
- rpm依赖包安装
- rpm升级软件包
- rpm查询软件包
rpm包名组成部分RPM全称RedHat Package Manager 缩写,由红帽开发用于软件包的安装,升级,卸载与查询。
在我们刚开始rpm包,建议先从本地镜像中获取rpm但实际生产环境中大多数是通过互联网方式获取rpm包,或者搭建企业私有包管理平台
在linux中除了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.rpmrpm依赖包安装
包依赖是指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.rpmrpm查询软件包
| 选项 | 描述 |
|---|---|
| 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包提供



