comando locale-gen in centos6


17

Nel mio sistema bare centos6.5, che è un dockercontenitore, en_US.utf-8mancano le impostazioni locali:

bash-4.1# locale -a
C
POSIX

Normalmente in Ubuntu c'è il comando locale-genper fare questo:

# locale-gen en_US.UTF-8
# echo 'LANG="en_US.UTF-8"' > /etc/default/locale

Come posso farlo in centos 6.5?

Risposte:


32

locale-gennon è presente in Centos/Fedora.

Devi usare localedef:

localedef -v -c -i en_US -f UTF-8 en_US.UTF-8

Da 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.

grazie, yum whatprovides */localedefrapporti per il glibc-commonpacchetto, mentre /usr/bin/localedefnon esiste. strano, a causa della finestra mobile?
Larrycai,

@larrycai: Non sono sicuro, non ho mai visto questo problema prima. Quale risultato ldd /usr/bin/localedef.
cuonglm

il file non esiste, solo localecomando. Se conosci la finestra mobile, puoi anche correre docker run -i -t centos bashper controllare.
larrycai,

Grazie signore ~ ​​Mi stavo abbastanza seccando per gli strani caratteri :)
Eddie B,

8

Ho fornito ulteriori informazioni in base alla risposta @Gnouc (localedef deve essere utilizzato in centos)

Questa centos dockerè un'immagine speciale che fornisce pacchetti minimi, vedere lo 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}

Il comando interno localedefviene rimosso, il glibc-commonpacchetto che include questo deve essere reinstallato

yum reinstall glibc-common

sicuramente la dimensione sarà aumentata


yum reinstall glibc-commonreso localedef disponibile per me sul 2.17-196.172.amzn1contenitore Docker di Amazon Linux : hub.docker.com/r/ambakshi/amazon-linux e mi ha permesso di installare l'elisir.
Kevin Johnson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.