Linux(红帽系列CentOS Stream9) yum rpm软件包管理工具说明、yum国内镜像仓库配置以及yum常用命令

这里我使用的 Linux 为 CentOS Stream 9

在红帽系列的 Linux 中,使用 yum 工具帮助我们管理和下载安装 rpm 软件包,并帮助我们自动解决 rpm 软件包之间的依赖关系。

比如,我们现在要使用 yum 下载安装 MySQL,yum 工具发现其依赖 MySQL-common 就会帮我们去下载安装 MySQL-common,如果还依赖其他,也会帮助我们下载安装,最后直到帮我们完成 MySQL 的安装。

所以在红帽系列的 Linux 中,我们如果需要安装软件可以直接使用 yum 工具来帮我们安装。

yum 工具的工作机制

yum 总的来说,分为服务器端和客户端。

服务器端:比如阿里云的 yum 镜像仓库所在的机器,在服务器上面存放了所有的 rpm 软件包,然后以相关的功能去分析每个 rpm 文件之间的依赖关系,并将这些数据记录成文件存放在服务器的某特定目录内。

客户端:可以理解为我们使用的 CentOS 操作系统就是一个客户端,需要使用 yum 向服务器端请求下载 rpm 软件包,如果我们需要安装某个软件时,yum 会先下载服务器上面记录了 rpm 软件包之间的依赖关系的文件(可通过 WWW 或 FTP 方式),然后通过对服务器端下载的记录了 rpm 软件包之间依赖关系的文件进行分析,然后依据该文件去下载所有相关的软件,将所有相关软件全部下载下来,进行安装。

yum 工具的配置文件

yum 工具的配置文件在 /etc/yum.conf,在 yum 工具的配置文件中对 yum 工具下载、安装、删除软件包等操作进行总体上的配置。

一般情况下,我们不对 yum 工具的配置文件中的内容进行修改

如下是默认情况下,CentOS Stream 9 中 yum 工具的配置文件中的内容:

更多配置项及其解释可以参考:https://www.cnblogs.com/f1194361820/p/8573857.html

bash 复制代码
[root@Jenkins yum.repos.d]# cat /etc/yum.conf

[main]
# 检查软件包的合法性
gpgcheck=1
# 可以同时安装软件包的个数
installonly_limit=3
# 在删除软件包时检查每个包的依赖项,如果删除的软件包的依赖包不被
# 其他包依赖,是否删除这些不被依赖的包,默认值 False
clean_requirements_on_remove=True
best=True
# 如果无法访问当前 yum 镜像仓库,是否继续运行 yum
# 如果设置为 True,yum 无法访问当前镜像仓库,继续运行,
# 会咨询配置的其他镜像仓库
skip_if_unavailable=False

yum 工具的镜像仓库源配置文件

yum 工具下载 rpm 软件包的镜像仓库可以配置多个,即可以同时存在多个 yum 工具镜像仓库源配置文件,yum 工具的镜像仓库源配置文件存放在 /etc/yum.repos.d 目录中

如果同时存在多个 yum 工具镜像仓库源配置文件,即配置了多个 yum 工具下载 rpm 软件包的镜像仓库,yum 会自动选择软件版本最新的,以及优先选择离我们近的仓库下载

对于 yum 工具镜像仓库源配置文件中的配置内容,只对 /etc/yum.repos.d/centos.repo 文件中的部分进行说明,其他部分都差不多

更多配置项及其解释可以参考:https://www.cnblogs.com/f1194361820/p/8573857.html

bash 复制代码
[root@Jenkins yum.repos.d]# cat /etc/yum.repos.d/centos.repo 

[baseos]
# 当前 yum 工具下载镜像仓库中 baseos 镜像源名称
# $releasever 可以获取到当操作系统发行版版本的系统变量
name=CentOS Stream $releasever - BaseOS
# 镜像源地址 
# $stream 可以获取到当操作系统发行版的系统变量
# $basearch &arch 可以获取到当操作系统架构的系统变量
metalink=https://mirrors.centos.org/metalink?repo=centos-baseos-$stream&arch=$basearch&protocol=https,http
# 软件包下载源公钥的下载地址
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
# 是否检查密钥,防止下载镜像源被篡改,以确保下资源的正确
gpgcheck=1
# 是否对此镜像仓库中的 repodate 执行 GPG 签名检查
repo_gpgcheck=0
# 覆盖此镜像仓库的 [main] 部分中的 metadata_expire 选项
# yum 元数据过期时间
# 当前 yum 下载源镜像仓库元数据更新时间
metadata_expire=6h
countme=1
# 是否启用当前配置的镜像仓库中的此镜像源,即是否启用 baseos 整个配置项
enabled=1

更换 yum 工具的镜像仓库

由于阿里云镜像开源网站对于 CentOS Stream 9 配置 yum 阿里云镜像仓库(https://developer.aliyun.com/mirror/centos-stream?spm=a2c6h.13651104.d-2001.10.6259320cuODYGX),没有像 CentOS 7 那样提供命令直接进行配置,目前需要我们手动添加 yum 工具镜像仓库的配置文件。

所以这里先对 CentOS 7 配置 yum 阿里云镜像仓库(https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11kLbub8)进行说明。

CentOS 7 配置 yum 阿里云镜像仓库

仓库来源:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11kLbub8

由于后面要使用 wget 拉取 yum 阿里云镜像仓库的配置文件到我们的 CentOS 系统上,所以先执行如下命令安装或检查是否安装 wget

-y:表示安装过程中需要我们输入 y 确认的内容全部同意确认,这样子安装过程中就无需输入 y 确认

bash 复制代码
yum install -y wget

将原先的 yum 自带的下载仓库配置文件进行备份

bash 复制代码
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

使用 wget 拉取 yum 阿里云镜像仓库的配置文件到我们的 CentOS 系统上

bash 复制代码
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

然后,我们再为 yum 配置一下 epel 仓库

阿里云镜像仓库为 CentOS 配置 EPEL 文档:https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b11bGYwYW
EPEL的全称叫 Extra Packages for Enterprise Linux,Linux 的额外软件包。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。yum 找不到相应的软件包可以从 epel 上寻找下载安装。

来源:https://blog.csdn.net/weixin_41831919/article/details/109035936

如果原先有 epel 仓库源配置文件,那么先进行备份

bash 复制代码
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup

mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

获取阿里云 epel 镜像仓库源配置文件

bash 复制代码
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

接下来,对原有的缓存进行清除

bash 复制代码
yum clean all

然后让 yum 建立新的缓存

bash 复制代码
yum makecache

最后,我们让 yum 将可以更新的软件包更新一下

bash 复制代码
yum update -y

CentOS Stream 9 配置 yum 阿里云镜像仓库

参考转自:https://blog.csdn.net/weixin_54009596/article/details/130597895

先运行如下命令,对 /etc/yum.repos.d 目录中的 yum 自带的下载仓库配置文件进行备份

bash 复制代码
cd /etc/yum.repos.d/

mkdir repo_bak

cp -r *.repo ./repo_bak/

修改 /etc/yum.repos.d/ 目录下的 centos.repo 和 centos-addons.repo 文件,在其中写入如下内容,为 CentOS Stream 9 的 yum 配置阿里云镜像仓库

这里为了更加方便向 centos.repo 和 centos-addons.repo 文件写入如下内容,可以使用 xftp 工具用记事本打开编辑

centos.repo:

bash 复制代码
[baseos]
name=CentOS Stream $releasever - BaseOS
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/BaseOS/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[baseos-debug]
name=CentOS Stream $releasever - BaseOS - Debug
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/BaseOS/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[baseos-source]
name=CentOS Stream $releasever - BaseOS - Source
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/BaseOS/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[appstream]
name=CentOS Stream $releasever - AppStream
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[appstream-debug]
name=CentOS Stream $releasever - AppStream - Debug
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[appstream-source]
name=CentOS Stream $releasever - AppStream - Source
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/AppStream/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[crb]
name=CentOS Stream $releasever - CRB
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/CRB/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[crb-debug]
name=CentOS Stream $releasever - CRB - Debug
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/CRB/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[crb-source]
name=CentOS Stream $releasever - CRB - Source
baseurl=https://mirrors.aliyun.com/centos-stream/$stream/CRB/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

centos-addons.repo:

bash 复制代码
[highavailability]
name=CentOS Stream $releasever - HighAvailability
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/HighAvailability/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[highavailability-debug]
name=CentOS Stream $releasever - HighAvailability - Debug
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/HighAvailability/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[highavailability-source]
name=CentOS Stream $releasever - HighAvailability - Source
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/HighAvailability/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[nfv]
name=CentOS Stream $releasever - NFV
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/NFV/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[nfv-debug]
name=CentOS Stream $releasever - NFV - Debug
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/NFV/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[nfv-source]
name=CentOS Stream $releasever - NFV - Source
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/NFV/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[rt]
name=CentOS Stream $releasever - RT
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/RT/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[rt-debug]
name=CentOS Stream $releasever - RT - Debug
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/RT/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[rt-source]
name=CentOS Stream $releasever - RT - Source
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/RT/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[resilientstorage]
name=CentOS Stream $releasever - ResilientStorage
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/ResilientStorage/$basearch/os/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0

[resilientstorage-debug]
name=CentOS Stream $releasever - ResilientStorage - Debug
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/ResilientStorage/$basearch/debug/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[resilientstorage-source]
name=CentOS Stream $releasever - ResilientStorage - Source
baseurl=http://mirrors.aliyun.com/centos-stream/$stream/ResilientStorage/source/tree/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

[extras-common]
name=CentOS Stream $releasever - Extras packages
baseurl=http://mirrors.aliyun.com/centos-stream/SIGs/$stream/extras/$basearch/extras-common/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1

[extras-common-source]
name=CentOS Stream $releasever - Extras packages - Source
baseurl=http://mirrors.aliyun.com/centos-stream/SIGs/$stream/extras/source/extras-common/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0

接下来,对原有的缓存进行清除

bash 复制代码
yum clean all

然后让 yum 建立新的缓存

bash 复制代码
yum makecache

最后,我们让 yum 将可以更新的软件包更新一下

bash 复制代码
yum update -y

至此,CentOS Stream 9 配置 yum 阿里云镜像仓库完成

yum 常用命令

yum 命令的用法:

bash 复制代码
yum [命令选项] [要执行的命令] [软件包1 软件包2 ...]

yum 后面可以使用的命令选项:

  • -y:在执行操作时自动回答 "yes",省去用户确认步骤。
  • -q:以静默模式执行命令,减少终端输出信息。
  • -v:以详细模式执行命令,增加终端输出信息。
  • -h--help:显示帮助信息,列出可用的选项和参数。
  • -C:在执行命令前检查软件包的完整性,可以帮助避免损坏的软件包。

yum 后面可以使用的要执行的命令:

  • install package1 [package2] [...] 安装指定的软件包
  • remove package1 [package2] [...] 删除指定的软件包
  • update [package1] [package2] [...] 更新软件包,没有指定软件包,则为可以更新的软件包进行更新
  • makecache 让 yum 建立缓存
  • list [...] 列出所有的与查找关键词匹配的已安装和可以安装的软件包
    • yum list 列出所有的已安装和可以安装的软件包
    • yum list installed 列出所有的已安装的软件包
  • info [...] 列出所有的与查找关键词匹配的已安装和可以安装的软件包及其信息
    • yum info 列出所有的已安装和可以安装的软件包及其信息
  • search string1 [string2] [...] 根据关键词搜索软件包
  • clean 清理 yum 缓存
    • yum clean all 清理所有缓存
    • yum clean metadata 清理元数据缓存
    • yum clean packages 清理软件包缓存
  • repolist all|enabled|disabled 列出 yum 仓库列表
    • all:显示所有仓库,并显示仓库的状态(是否启用)
    • enabled:显示启用的仓库
    • disabled:显示禁用的仓库

Linux 中的软件包组,其实就是一个软件包集合,将多个经常一起使用的或者在一个环境下经常会用到的软件包组成一个集合,形成一个软件包组,选择软件包组,可以一次直接将一个环境下经常会使用的软件包安装到本地,就不用一个一个单独输入软件包名进行安装

  • groupinstall group1 [group2] [...] 安装软件包组
  • groupupdate group1 [group2] [...] 更新软件包组
  • groupremove group1 [group2] [...] 删除软件包组
  • grouplist [...] 列出所有的与查找关键词匹配的软件包组
  • groupinfo group1 [group2] [...] 列出软件包组及其信息
相关推荐
sinat_3842410912 分钟前
使用 npm 安装 Electron 作为开发依赖
服务器
朝九晚五ฺ27 分钟前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream31 分钟前
Linux的桌面
linux
xiaozhiwise1 小时前
Makefile 之 自动化变量
linux
Kkooe2 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒2 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
谭震鸿3 小时前
Zookeeper集群搭建Centos环境下
分布式·zookeeper·centos
意疏3 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
虚拟网络工程师3 小时前
【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)
运维·服务器·网络·数据库·mariadb