docker
コンテナーである私の裸のcentos6.5システムでは、en_US.utf-8
ロケールが欠落しています。
bash-4.1# locale -a
C
POSIX
通常、Ubuntuには、これを行うためのコマンドlocale-gen
があります。
# locale-gen en_US.UTF-8
# echo 'LANG="en_US.UTF-8"' > /etc/default/locale
CentOS 6.5でこれを行うにはどうすればよいですか?
locale-gen
はCentos/Fedora
にありません。
localedef
を使用する必要があります:
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
man localedef
から:
NAME
localedef - define locale environment
SYNOPSIS
localedef [-c][-f charmap][-i sourcefile][-u code_set_name] name
DESCRIPTION
The localedef utility shall convert source definitions for locale cate‐
gories into a format usable by the functions and utilities whose opera‐
tional behavior is determined by the setting of the locale environment
variables defined in the Base Definitions volume of
IEEE Std 1003.1-2001, Chapter 7, Locale. It is implementation-defined
whether users have the capability to create new locales, in addition to
those supplied by the implementation. If the symbolic constant
POSIX2_LOCALEDEF is defined, the system supports the creation of new
locales. On XSI-conformant systems, the symbolic constant
POSIX2_LOCALEDEF shall be defined.
回答@Gnoucに基づいて追加情報を提供しました(localedef
はセントオで使用されます)
centos docker
は最小限のパッケージを提供する特別なイメージです。スクリプトを参照してください https://github.com/dotcloud/docker/blob/master/contrib/mkimage-yum.sh
rm -rf "$target"/usr/{{lib,share}/locale,{lib,lib64}/gconv,bin/localedef,sbin/build-locale-archive}
内部コマンドlocaledef
が削除され、glibc-common
これを含むパッケージを再インストールする必要があります
yum reinstall glibc-common
きっとサイズが増えます