报错场景:
docek pull centos 下来后,在centos中使用yum命令报错(这里的centos是最新的没有加版本号)
2022/6/5 第一行加上版本号 centos:7 否则后面下载yum命令会报找不到代码源错误,因为centos不更新了
问题描述
1. docker 构建centos镜像使用yum install 命令报错:
# 报错内容
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream 68 B/s | 38 B 00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
2. 根据报错内容,去下载语言包报错
# 查看语言包
[root@ae87167a11ae etc]# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
C.utf8
POSIX
# 尝试生成语言环境数据库
[root@ae87167a11ae etc]# source /etc/environment
[root@ae87167a11ae etc]# localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
failed to set locale!
[error] character map file `UTF-8' not found: No such file or directory
failed to set locale!
[error] default character map file `ANSI_X3.4-1968' not found: No such file or d irectory
[root@ae87167a11ae etc]# yum install vm
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream 77 B/s | 38 B 00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
# 尝试安装 语言包
[root@ae87167a11ae etc]# dnf install glibc-langpack-en
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream 2.4 B/s | 38 B 00:15
Errors during downloading metadata for repository 'appstream':
- Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/ ?release=8&arch=x86_64&repo=AppStream&infra=container [Could not resolve host: m irrorlist.centos.org]
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
[root@ae87167a11ae etc]# dnf install glibc-langpack-en
Failed to set locale, defaulting to C.UTF-8
CentOS Linux 8 - AppStream 25 B/s | 38 B 00:01
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
原因分析&解决方案:
以上尝试解决方法均未成功,原因是cenos8停服,后继版本为8-steam,当然也可以pull centos:7.0的镜像