ロケールを日本語に設定しようとしていますが、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
でグループリストを確認しましたが、どちらにも日本語のサポートは含まれていません。
日本語サポートをインストールする方法はありますか?
前もって感謝します。
RHEL 7.4 Dockerイメージでも同じ問題が発生しました。 yum reinstall glibc-common
だけでは問題は解決しませんでした。英語のみのインストールでした。
Dockerコンテナ/etc/yum.conf
にoverride_install_langs=en_US
という行が含まれていることがわかりました。これにより、yum reinstall glibc-common
は英語のみをインストールしました。
この行をコメント化して(またはデフォルト値のallに変更して)、_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
ロケールを設定 は、localectl
コマンドで実行できます。
# localectl list-locales | grep ^ja
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc
正しいロケールを選択して設定します。
# localectl set-locale LANG=ja_JP.utf8
これはインプットメソッドや キーボードレイアウトの変更 をインストールしませんが、それらは実際にはコンテナには適用されないことに注意してください。
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
を再インストールする前後のロケールの数です。
CentOSイメージには言語パックがインストールされていないため、同様の問題がありました。 glibc-langpack-enパッケージをインストールしてenをサポートしました。だから、あなたはglibc-langpack-jaが必要だと思います。
yum install glibc-langpack-ja