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

[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 会自动选择软件版本最新的,以及优先选择离我们近的仓库下载
image.png
对于 yum 工具镜像仓库源配置文件中的配置内容,只对 /etc/yum.repos.d/centos.repo 文件中的部分进行说明,其他部分都差不多

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

[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 确认

yum install -y wget

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

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

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

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 仓库源配置文件,那么先进行备份

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 镜像仓库源配置文件

wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

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

yum clean all

然后让 yum 建立新的缓存

yum makecache

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

yum update -y

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

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

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

cd /etc/yum.repos.d/

mkdir repo_bak

cp -r *.repo ./repo_bak/

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

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

centos.repo:

[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:

[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

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

yum clean all

image.png
然后让 yum 建立新的缓存

yum makecache

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

yum update -y

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

yum 常用命令

yum 命令的用法:

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] [...] 列出软件包组及其信息

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 23:36:03       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 23:36:03       5 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 23:36:03       4 阅读
  4. Python语言-面向对象

    2024-03-31 23:36:03       6 阅读

热门阅读

  1. go | channel direction、channel sync、channelbuffer

    2024-03-31 23:36:03       25 阅读
  2. 【WPF应用19】WPF中的Button控件详解

    2024-03-31 23:36:03       26 阅读
  3. C基础知识笔记一

    2024-03-31 23:36:03       29 阅读
  4. Python 基础教程:面向对象

    2024-03-31 23:36:03       26 阅读
  5. 关于 UnityEditorWindow

    2024-03-31 23:36:03       25 阅读
  6. 「PHP系列」PHP变量

    2024-03-31 23:36:03       57 阅读
  7. 计算机世界的“十六进制”为什么如此重要

    2024-03-31 23:36:03       24 阅读
  8. 蓝桥杯2014年第十三届省赛真题-切面条

    2024-03-31 23:36:03       24 阅读
  9. 【1单片机入门记录】DS18B20的应用

    2024-03-31 23:36:03       47 阅读
  10. C++中的类型转换

    2024-03-31 23:36:03       26 阅读