问题描述:
使用DOCKER容器运行CENTOS镜像,执行命令时提示“FAILED TO SET LOCALE, DEFAULTING TO C.UTF-8”
网上搜索了一堆都是重复的,因此记录一下
问题分析
因为docker安装的centos一般是精简版本,不包含很多指令包。遇到中文乱码问题先查看:locale,
[root@hadoopcloud104 software]# locale
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_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
报了如上的问题,无法找到文件或目录,说明centos没有安装en_US.UTF-8语言包,因此我们手动安装一下
dnf -y install glibc-langpack-en 或 dnf install langpacks-en glibc-all-langpacks -y
安装到complete即说明安装好了。
这时候locale -a,查看安装语言包
再次运行yum命令则不再提示报错信息了,则说明到此就可以关闭当前文档了。
以下是补充部分:
若系统已经安装了语言包,还是有问题,先退出重启以下,开机测试。
之后考虑将en_US.UTF-8写入环境,一般系统是已经自带的了,这里可以再次写入以下:
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
echo "export LC_CTYPE=en_US.UTF-8" >> /etc/profile
source /etc/profile
# 或使用命令
locale -gen en_US.UTF-8
若要安装中文语言包,可使用命令yum install glibc-langpack-zh。