linux YUM 配置

41 阅读4分钟

YUM ( 全称为Yellow dog Updater,Modified)是一个前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。yum 解决依赖关系问题,自动下载软件包,它是基于 C/S ( C=client,S=ftp\http\file )架构。

在 centos8 当中,本地光盘中的安装包被分别放在了两个路径下。假设挂载路径为 /mnt,那么两个Package路径分别为:/mnt/AppStream/Packages/mnt/BaseOS/Packages。因为 IOS 镜像内的设置,所以导致了在编辑本地 yum 源的时候需要分别写两个路径在配置文件中。同时网络 yum 源也被分别写到了两个配置文件内。所以就需要把两个网络 yum 源配置文件改名。

1. 配置本地YUM源

1.1 挂载光盘

mount /dev/sr0 /mnt/ # 将设备挂载到 /mnt 

ls /etc/yum.repos.d/ # 所有的 yum 源都在该目录下 如图-1所示

1.2 YUM 配置信息

vim /etc/yum.repos.d/CentOS-Linux-Media.repo # 如下图所示

配置参数说明
参数参数说明备注
name用户可以自行定义
baseurlYUM镜像源路径
gpgcheck使用 YUM 下载是否需要校验 1 校验, 0 不校验, 校验需要导入校验文件
gpgkey校验文件路径

1.3 创建 YUM 源

# 备份
cp /etc/yum.repos.d/CentOS-Linux-Media.repo /etc/yum.repos.d/centos8.repo

vim /etc/yum.repos.d/centos8.repo

✏️ 修改 baseurl, 指定本地系统镜像源, 通过系统镜像挂载目录,查看 baseurl 地址

如果 gpgcheck=1,需要导入 rpm 公钥,方便后期校对 rpm 包的安全性。一般 gpgcheck=0 不校验。

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial; # 导入校验文件(公钥)

mv /etc/yum.repos.d/CentOS-* /opt/ # 配置完成后将原本的镜像源移走
ll /etc/yum.repos.d # 查看移走后文件目录
yum list # 能正常查看 yum 包, 则本地 yum 配置完成

⚠️ 注意: 在配置手动配置完成后,需要将之前系统配置文件全部移走

✏️ yum 命令是一个软连接, 软链到了 dnf-3,所以使用 yum 与使用 dnf 效果等同

✏️ yum 是一个非二进制脚本,是使用 python 语言写的脚本

BaseOS: 类似于 centos7 中的 Base 软件仓库,主要提供了 OS 系统的基础组建,提供的是 RPM 形式的包,因为都是 RPM 包形式所以它支持与之前版本兼容(support terms similar)。

AppStream: 它提供的是系统以外的应用程序,如:httpd,nginx,php,mariadb-server 等。

2. 配置外部 YUM 源

在多数情况下是不用单独配置 YUM 外部源, linux 系统默认会从最近的网络里面下载依赖文件,详情可以查看 CentOS-Base.repo,如果想使用阿里云镜像源,使用如下配置即可

# 下载文件, 阿里镜像源
wget -o /etc/yum.repos.d/Centos-8.repo http://mirrors.aliyun.com/reo/Centos-8.repo

3. yum 命令

yum install httpd -y # 安装 apache 服务
yum update # 更新系统
yum upgrade # 升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变。工作中推荐使用这种升级方式。

yum info httpd # 查看包的基本信息
yum provides /usr/bin/find # 查看 find 是由哪个包安装的
yum remove -y httpd-tools # 删除包
yum search httpd # 通过查找相应的包

yum grouplist # 已经安装的组
yum groupinstall # 安装一组包

yum list # 列出所有的安装包

4. 注意事项

在配置中如果不生效,请做以下排查:

  1. 确定光盘是否连接,光盘是否挂载。
  2. 配置文件中格式是否正确,字母,符号有没有少写,挂载点和配置文件中设置的是否一致配置。
  3. 网络源需要联网,操作和 RPM 类似,只是会自动安装依赖项。

5. 默认 yum 源无法使用

在 CentOS8.4(非 Steam 版本)默认 yum 源无法使用。如下图 5-1 所示:

如图 5-2 和 图 5-3所示镜像的默认地址,这个地址已经不在支持了。请使用第三方阿里云或其他的镜像源。做如下修改如图 5-4。

配置文件参考:找到相应的镜像源文件,对应复制进去即可。

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/BaseOS/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/os/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[PowerTools]
name=CentOS-$releasever - PowerTools - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/PowerTools/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/PowerTools/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[AppStream]
name=CentOS-$releasever - AppStream - mirrors.aliyun.com
#failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
        http://mirrors.aliyuncs.com/centos/$releasever/AppStream/$basearch/os/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official