CentOS yum命令报错:Failed to set locale和Failed to download metadata for repo ‘appstream‘

文章目录

  • 一、问题背景
  • 二、解决方法
    • 1. yum镜像源问题
      • 1.1 CentOS 8 版本解决方法
      • 1.2 Centos 8 之前版本解决方法
    • 2. 语言环境问题
      • 2.1 查看本地安装的语言包
      • 2.2 安装语言包
      • 2.3 设置语言环境
      • 2.4 验证语言是否设置成功


一、问题背景

Docker拉取了CentOS镜像,在运行该镜像的容器,执行yum命令时,遇到了如下报错:

[root@a006ee87c1af /]# yum install mariadb-server
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream                                                    40  B/s |  38  B     00:00    
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

二、解决方法

1. yum镜像源问题

其中 Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist 是yum镜像源的问题。

查看CentOS镜像具体版本

[root@a006ee87c1af /]# cat /etc/redhat-release
CentOS Linux release 8.4.2105

1.1 CentOS 8 版本解决方法

以 CentOS 8.4.2105 为例

运行以下命令,将minorver变量设置为8.4.2105。这个变量用于后续命令中的替换操作

sed是一个流编辑器,用于对文本进行替换、删除、插入等操作

这两个命令的目的是将CentOS操作系统的YUM仓库配置文件中的默认镜像源更改为阿里云的镜像源,以配置镜像源或者提高软件包下载速度和稳定性。

minorver=8.4.2105

sed -e "s|^mirrorlist=|#mirrorlist=|g" \
    -e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=https://mirrors.aliyun.com/centos-vault/$minorver|g" \
    -i.bak \
    /etc/yum.repos.d/CentOS-*.repo

1.2 Centos 8 之前版本解决方法

以 CentOS 7.9.2009 为例

minorver=7.9.2009

sed -e "s|^mirrorlist=|#mirrorlist=|g" \
    -e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors.aliyun.com/centos-vault/$minorver|g" \
    -i.bak \
    /etc/yum.repos.d/CentOS-*.repo

2. 语言环境问题

其中Failed to set locale, defaulting to C.UTF-8是系统语言环境问题

下面是解决方案:

2.1 查看本地安装的语言包

[root@a006ee87c1af /]# locale -a
C
C.utf8
POSIX

2.2 安装语言包

安装中文语言包:yum install glibc-langpack-zh
安装英文语言包:yum install glibc-langpack-en(可选)

本教程只安装了中文语言包,如下:

[root@a006ee87c1af /]# locale -a
C
C.utf8
POSIX
zh_CN
zh_CN.gb18030
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.utf8
zh_SG
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.euctw
zh_TW.utf8

2.3 设置语言环境

从你已安装的语言中,选择你想要设置的语言,这里选择的是zh_CN.utf8,并执行source命令使更改生效

echo "export LC_ALL=zh_CN.utf8" >> /etc/profile
source /etc/profile

2.4 验证语言是否设置成功

请添加图片描述

你可能感兴趣的:(运维,centos,linux,运维)