私のデフォルトのcentos6.5システムではコンテナでdocker
あり、en_US.utf-8
ロケールがありません。
bash-4.1# locale -a
C
POSIX
locale-gen
通常、Ubuntuにはこれを行うコマンドがあります。
# locale-gen en_US.UTF-8
# echo 'LANG="en_US.UTF-8"' > /etc/default/locale
Centos 6.5でどうすればいいですか?
答え1
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.
答え2
@Gnoucの答えに基づいて追加情報を提供しました(localedef
centosで使用されています)。
最小限のパッケージを提供する特別なイメージです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
サイズは確かに増えるでしょう。