如何在 CentOS 7(在 Docker 上)添加语言支持?

如何在 CentOS 7(在 Docker 上)添加语言支持?

我正在尝试将语言环境设置为日语,但 docker 上的 CentOS 镜像不包含语言支持。

bash-4.2# yum groupinstall -y "Japanese Support"
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: centos.mirror.secureax.com
 * updates: centos.mirror.secureax.com
Warning: group Japanese Support does not exist.
Maybe run: yum groups mark install (see man yum)
No packages in any requested group available to install or update

我已检查了和的群组列表yum grouplist,但yum grouplist hidden都没有包含日语支持。
有没有办法安装日语支持?
提前致谢。

答案1

我在使用 RHEL 7.4 docker 镜像时遇到了同样的问题。yum reinstall glibc-common它本身并没有解决问题。它只安装了英文版。

我发现我的docker容器中/etc/yum.conf包含以下行override_install_langs=en_US。这导致yum reinstall glibc-common只能安装英文版。

将此行注释掉(或更改为全部的默认值),然后重新运行,yum reinstall glibc-common我就可以使用其他语言了

docker run/attach 后的初始环境

# locale -a
C
POSIX
en_US.utf8
# grep lang /etc/yum.conf
override_install_langs=en_US
# export LANG=fr_FR
# ls foo
ls: cannot access foo: No such file or directory

我在更改之前尝试重新安装 glib-common/etc/yum.conf

# yum -y -q reinstall glibc-common
Failed to set locale, defaulting to C
# ls foo
ls: cannot access foo: No such file or directory
# 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
POSIX
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
#

更改/etc/yum.conf为注释掉该行后override_install_langs=en_US

# vi /etc/yum.conf
# grep lang /etc/yum.conf
#override_install_langs=en_US
# yum -y -q reinstall glibc-common
Failed to set locale, defaulting to C
# ls foo
ls: cannot access foo: Aucun fichier ou dossier de ce type
# locale -a | wc -l
789

答案2

您需要重新安装该glibc-common软件包。证明如下:

docker run -it --rm centos bash -c 'locale -a | wc -l && yum -y -q reinstall glibc-common && locale -a | wc -l'
53
789

注意:locale -a列出已安装的语言环境并wc -l对其进行计数,因此这些数字是重新安装之前和之后的语言环境数量glibc-common

相关内容