Dans mon système nain Centos6.5, qui est un conteneur docker
, en_US.utf-8
locale manque:
bash-4.1# locale -a
C
POSIX
Normalement à Ubuntu il y a commandement locale-gen
pour faire ça:
# locale-gen en_US.UTF-8
# echo 'LANG="en_US.UTF-8"' > /etc/default/locale
Comment puis-je faire cela à Centos 6.5?
locale-gen
n'est pas présent dans Centos/Fedora
.
Vous devez utiliser localedef
:
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
De 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.
J'ai fourni des informations supplémentaires basées sur la réponse @gnouc (localedef
doit être utilisée dans Centos)
Les centos docker
est une image spéciale qui fournit des packages minimaux, voir script 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}
Commande intérieure localedef
est supprimée, glibc-common
paquet qui inclut cela doit être réinstallé
yum reinstall glibc-common
sûrement la taille sera augmentée