rpm
# RPM基本概述
# 什么是rpm
RPM
全称RedHat Package Manager
缩写,由红帽开发用于软件包的安装、升级、卸载与查询。
# rpm包名组成部分
RPM
包命名以-
将软件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm
# 如何获取rpm包
在我们刚开始学习rpm
包,建议先从本地镜像中获取rpm
但实际生产环境中大多数是通过联网方式获取rpm
包,或者搭建企业私有包管理仓库平台。
# 其他类型的安装包
在Linux
中除了rpm
格式类型的包,还存在一些其他类型的软件包。
分类 | 安装 | 版本 |
---|---|---|
rpm包 | 预先编译打包,安装简单 | 软件版本偏低 |
源码包 | 手动编译打包,安装繁琐 | 软件版本随意 |
二进制包 | 解压即可使用,安装简单 | 不能修改源码 |
# RPM包管理命令
# rpm安装软件包
- -i:安装软件包
- -v:显示安装过程.
- -h:显示安装进度条
使用rpm
命令安装本地路径下软件包
[root@web ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[root@web ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
2
使用rpm
命令安装互联网上的软件包
[root@web ~]# 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
类型包出现了依赖关系应该如何处理,比如安装samba
软件包。
[root@web ~]# rpm -ivh /mnt/Packages/samba-4.8.3-4.el7.x86_64.rpm
error: Failed dependencies:
libxattr-tdb-samba4.so()(64bit) is needed by samba-0:4.8.3-4.el7.x86_64
libxattr-tdb-samba4.so(SAMBA_4.8.3)(64bit) is needed by samba-0:4.8.3-4.el7
.x86_64
samba-common-tools = 4.8.3-4.el7 is needed by samba-0:4.8.3-4.el7.x86_64
samba-libs = 4.8.3-4.el7 is needed by samba-0:4.8.3-4.el7.x86_64
2
3
4
5
6
7
尝试安装依赖包
samba-common
[root@web ~]# rpm -ivh /mnt/Packages/samba-common-4.9.1-6.el7.noarch.rpm
1尝试安装依赖包
samba-libs
[root@web ~]# rpm -ivh /mnt/Packages/samba-libs-4.8.3-4.el7.x86_64.rpm
1尝试安装依赖包
samba-common-tools
[root@web ~]# rpm -ivh /mnt/Packages/samba-common-tools-4.8.3-4.el7.x86_64.rpm
1最后尝试安装
samba
主程序包[root@web ~]# rpm -ivh /mnt/Packages/samba-4.8.3-4.el7.x86_64.rpm
1
PS:由于rpm工具安装rpm包依赖关系太强,所以通常我们都是使用
yum
来解决
# rpm升级软件包
下载zabbix-agent
软件包,分别下载3.0
低版本、然后下载4.2
高版本来进行测试与实验。
[root@web ~]# wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
[root@web ~]# wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm
2
3
先安装
zabbix-agent-3.0
低版本[root@web ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm
1尝试使用
rpm -ivh
安装zabbix-agent-4.2
高版本(会出现报错)[root@web ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm
1使用
rpm -Uvh
升级zabbix-agent
至4.2
版本。(完美解决)[root@web ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
1
# rpm卸载软件包
如果需要卸载rpm
包,可以先查看该包是否存系统中,然后在进行卸载操作。
使用
rpm -q
查询软件包是否存在系统[root@web ~]# rpm -q zsh
1使用
rpm -e
卸载软件包[root@web ~]# rpm -e zsh
1
# rpm查询软件包
选项 | 描述 |
---|---|
rpm -q | 查看指定软件包是否安装 |
rpm -qa | 查看系统中已安装的所有RPM软件包列表 |
rpm -qi | 查看指定软件的详细信息 |
rpm -ql | 查询指定软件包所安装的目录、文件列表 |
rpm -qc | 查询指定软件包的配置文件 |
rpm -qf | 查询文件或目录属于哪个RPM软件 |
查询
vsftpd
这个rpm
包是否安装[root@web ~]# rpm -q vsftpd
1模糊查找系统已安装的
rpm
包[root@web ~]# rpm -qa |grep ftp
1查询
vsftpd
软件包相关信息[root@web ~]# rpm -qi vsftpd
1查询
vsftpd
软件包所安装后在系统中生成的文件路径[root@web ~]# rpm -ql vsftpd
1查询
vsftpd
软件包的主配置文件[root@web ~]# rpm -qc vsftpd
1查询配置文件或系统命令是由哪个
rpm
包提供[root@web ~]# rpm -qf /etc/vsftpd/vsftpd.conf [root@web ~]# rpm -qf /usr/sbin/vsftpd [root@web ~]# rpm -qf $(which cd) bash-4.2.46-31.el7.x86_64 # rpm需要知道命令的绝对路径,如果不存在该命令是无法查找到该命令所属的软件包
1
2
3
4
5查询未安装的
rpm
包会产生哪些文件[root@web ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
1