локально-генна команда в centos6


17

У моїй голій системі centos6.5, яка є dockerконтейнером, 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

Як я можу це зробити у центрі 6,5?

Відповіді:


32

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.

дякую, yum whatprovides */localedefзвіти за glibc-commonпакет, поки /usr/bin/localedefйого не існує. дивно, через докера?
larrycai

@larrycai: Я не впевнений, раніше не бачив цієї проблеми. Який результат ldd /usr/bin/localedef.
cuonglm

файл не існує, лише localeкоманда. Якщо ви знаєте докер, ви можете запустити docker run -i -t centos bashі перевірити.
larrycai

Дякую, сер! Мене дуже дратувало дивакура :)
Едді Б,

8

Я надав додаткову інформацію на основі відповіді @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

напевно розмір буде збільшений


yum reinstall glibc-commonзробив localedef доступним для мене на 2.17-196.172.amzn1контейнері Amazon Linux Docker: hub.docker.com/r/ambakshi/amazon-linux і дозволив мені встановити еліксир.
Кевін Джонсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.