1.1 什么是rpm
RPM 全称 RedHat Package Manager 缩写,是由红帽开发用于软件包的安装、升级、卸载与查询工具。
包格式:xxx.rpm
命令: rpm
1.2 rpm包名组成部分
1.3 如何获取rpm包
本地镜像(学习);
联网方式获取(生产);
搭建私有包管理平台(生产);
1.4 其他类型的安装包
分类 | 安装 | 版本 |
/rpm | 预先编译打包,安装简单。 | 软件(k8s开源应用)版本偏低。 |
源码包 | 手动编译打包,安装繁琐。 | 软件版本随意(rpm包版本低,源码)。 |
二进制包 | 解压即可使用,安装简单。 | 不能修改源码 (小工具,解压即用)。 |
2.RPM包管理命令
2.1 rpm安装软件包
-i:安装软件包
-v:显示安装过程
-h:显示安装进度条
1.使用 rpm 命令安装本地路径下软件包
1 [root@node ~]# mount /dev/cdrom /mnt/ 2 [root@oldxu ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
2.使用 rpm 命令安装互联网上的软件包
1 #1.wget下载>本地>安装2 #2.直接安装>rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
2.2 rpm依赖包安装
包依赖:A-->依赖-->B,B-->依赖-->C ,而C-->依赖-->A ,首先需要先安装依赖包,再安装主程序。
PS: 由于rpm工具安装rpm包依赖关系太强,所以通常我们都是使用 yum 来解决。
2.3 rpm升级软件包
1.先安装xxx3.0低版本软件包,再安装xxx4.0高版本,会报错;
2.使用rpm -Uvh=升级至4版本;
2.4 rpm卸载软件包
1.rpm -q #查询软件包是否存在系统。
2.rpm -e #卸载软件包。
2.5 rpm查询软件包
选项 | 描述 |
rpm -q | 查看指定软件包是否安装; |
rpm -qa | 查看系统中所有rpm软件包列表,可结合grep使用; |
rpm -qi | 查看指定软件包的详细信息; |
rpm -ql | 查询指定软件包安装后,在系统中生成的文件路径; |
rpm -qc | 查询指定软件包的配置文件; |
rpm -qf | 查询配置文件或系统命令是由哪个rpm包提供; |
rpm -qlp | 查询未安装的rpm包会产生哪些文件; |
2.6 rpm包管理小结
范例:
如何查询 mkdir 命令是由哪个 RPM 软件包安装的?
[root@node ~]# rpm -qf /usr/bin/mkdir coreutils-8.22-21.el7.x86_64 [root@node ~]# rpm -qf $(which mkdir) coreutils-8.22-21.el7.x86_64
3.YUM基本介绍
3.1 什么是YUM
yum/dnf 是RedHat及CentOS 系统中的软件包管理器。它能够通过互联网下载 .rpm 格式包进行安装,并能自动处理其依赖间关系,无须繁琐地一次次下载安装。
3.2 什么是[YUM源|yum仓库
yum源概念:使用yum命令工具安装更新软件,需要有一个包含各种rpm软件包的仓库,这个仓库称为yum源。
yum源形式:本地仓库;网络仓库;
工作原理:client-->ftp/http/+yum地址-->yum仓库=(rpm包集合)
server-->yum源地址(aliyun)-->仓库repo文件(baseurl地址--->互联网上的一个仓库--->有非常多的rpm软件)
3.3 YUM配置文件
#1 CentOS8 的配置文件
cat /etc/yum.conf [main] gpgcheck=1 # 检查来源是否合法,需要有制作者的公钥信息 installonly_limit=3 # 同时可以安装3个软件包、最小为2,设置为0或者1则不限制 clean_requirements_on_remove=True # 删除包时,是否将不再使用的包删除 best=True # 升级时,自动选择安装最新版,即使缺少包的依赖 skip_if_unavailable=False
#2 CentOS7 的配置文件
vim /etc/yum.cnf
cachedir=/var/cache/yum/$basearch/$releasever # 缓存目录 keepcache=0 # 缓存软件包,1启动 0 关闭 debuglevel=2 # 调试级别 logfile=/var/log/yum.log # 日志记录位置 exactarch=1 # 检查平台是否兼容 obsoletes=1 # 检查包是否废弃 gpgcheck=1 # 检查来源是否合法,需要有制作者的公钥信息 plugins=1 installonly_limit=5 # 同时可以安装5个软件包、最小为2,设置为0或者1则不限制 # metadata_expire=90m #每小时手动检查元数据 # in /etc/yum.repos.d #包含repos.d目录中的.repo文件
3.4 配置YUM源示例
系统默认的源是国外提供,需要替换为国内的源。
#1 配置阿里yum源
[root@oldxu ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#2 配置第三方yum源(EPEL)
[root@oldxu ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4.1 yum查询软件包
#1.dnf/yum list #查询所有仓库中的所有软件包;
#2.dnf/yum list installed #查询所有已安装至系统中的软件包;
#3.dnf/yum provides #查询系统命令来自于哪个软件包(命令可以在当前系统,也可以不在);
rpm -qf $(which cd)
PS:需要知道命令的绝对路径, 如果不存在该命令是无法查找到该命令所属的软件包.
4.2 yum安装软件包
#1.dnf/yum install #通过仓库获取软件包进行安装
yum install xx #交互,麻烦
yum install xx -y #非交互,常用
#2.dnf/yum localinstall #安装本地的rpm包,如果存在依赖,会通过当前已有的仓库获取解决依赖关系;
4.3 yum重装软件包
误删除配置文件,可以通过重装的方式修复;
#1.dnf/yum reinstall #对软件进行重新安装;
#2.rpm -qc #检查服务配置文件是否恢复,以及软件是否能正常使用;
4.4 yum更新软件包
#1.yum check-update #检查更新
#2.yum update xx -y #更新软件
#3.yum update -y #更新系统中的所有软件,适用于安装完系统;
4.5 yum删除软件包
yum remove xx -y #删除软件包
4.6 yum管理组包
#1.dnf/yum groups install "xx" #安装组包(组包用双引号括起来,否则系统会认为是多个组包。)
#2.dnf/yum groups remove xx -y #删除包组
4.7 yum管理仓库
#1.dnf/yum repolist #查看源可用的软件仓库
#2.yum/dnf repolist all #查看所有的仓库
#3.dnf/yum-config-manager --disable/enable #启用和禁用仓库(本质都是在修改repo文件中参数 0关 1开)
4.8 yum管理历史记录
#1.dnf/yum history undo Number #删除撤销某个操作;
#2.dnf/yum history info Number #查看某个操作的具体信息;
#3.dnf/yum history redo Number #重新执行某个操作;