Как добавить языковую поддержку в CentOS 7 (в Docker)?

10

Я пытаюсь установить локаль на японский, но изображение CentOS на докере не включает языковую поддержку.

bash-4.2# yum groupinstall -y "Japanese Support"
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: centos.mirror.secureax.com
 * updates: centos.mirror.secureax.com
Warning: group Japanese Support does not exist.
Maybe run: yum groups mark install (see man yum)
No packages in any requested group available to install or update

Я проверил на список группы yum grouplistи yum grouplist hiddenи ни включает японскую поддержку.
Есть ли способ установить японскую поддержку?
Заранее спасибо.

DIGITALSQUAD
источник

Ответы:

11

У меня была такая же проблема с образом докера RHEL 7.4. yum reinstall glibc-commonсамо по себе не решило проблему. Это была только установка английского.

Я нашел в моем докере контейнер, /etc/yum.confсодержащий строку override_install_langs=en_US. Это привело yum reinstall glibc-commonк установке только на английском языке.

С этой строкой закомментированной (или измененной на значение по умолчанию всех) и повторным запуском yum reinstall glibc-commonя смог использовать другие языки

Начальная среда после запуска / присоединения докера

# locale -a
C
POSIX
en_US.utf8
# grep lang /etc/yum.conf
override_install_langs=en_US
# export LANG=fr_FR
# ls foo
ls: cannot access foo: No such file or directory

Моя попытка переустановить glib-common перед изменением /etc/yum.conf

# yum -y -q reinstall glibc-common
Failed to set locale, defaulting to C
# ls foo
ls: cannot access foo: No such file or directory
# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
POSIX
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
#

После изменения /etc/yum.confзакомментируйте строкуoverride_install_langs=en_US

# vi /etc/yum.conf
# grep lang /etc/yum.conf
#override_install_langs=en_US
# yum -y -q reinstall glibc-common
Failed to set locale, defaulting to C
# ls foo
ls: cannot access foo: Aucun fichier ou dossier de ce type
# locale -a | wc -l
789
Уильям Д. Айронс
источник
1

Вам необходимо переустановить glibc-commonпакет. Вот доказательство:

docker run -it --rm centos bash -c 'locale -a | wc -l && yum -y -q reinstall glibc-common && locale -a | wc -l'
53
789

Примечание: locale -aперечисляет установленные языковые стандарты и wc -lподсчитывает их, поэтому эти числа представляют собой количество языковых стандартов до и после переустановки glibc-common.

Yajo
источник
0

У меня была похожая проблема, потому что образ CentOS поставляется без установленного языкового пакета. Я установил пакет glibc-langpack-en для поддержки en . Итак, я полагаю, вам нужен glibc-langpack-ja .

yum install glibc-langpack-ja
Фабио Монтефусколо
источник