Изменить язык системы внутри CentOS / RHEL без использования localectl? - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь создать образ Docker на основе oracle/database:11.2.0.2-xe (который основан на Oracle Linux на основе RHEL) и хочу изменить языковой стандарт системы в этом образе (используя некоторые RUNкоманда внутри Dockerfile).

Согласно этому руководству Я должен использовать localectl set-locale <MYLOCALE>, но эта команда не выполняется с сообщением Failed to create bus connection: No such file or directory.Это известная проблема Docker для команд, требующих запуска SystemD.

Я все равно пытался запустить SystemD (используя /usr/sbin/init в качестве первого процесса, а также -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /run, спасибона эту справку ), но затем localectl set-locale завершился неудачно с сообщением Could not get properties: Connection timed out.

Так что я сейчас пытаюсь избежать использования localectl для изменения языкового стандарта моей глобальной системы,как я мог это сделать?

1 Ответ

0 голосов
/ 19 сентября 2018

Согласно этому хорошему руководству по настройке локали в Linux, я должен использовать

localedef -c -i fr_FR -f ISO-8859-15 fr_FR.ISO-8859-15

Но эта команда завершилась неудачно с

cannot read character map directory `/usr/share/i18n/charmaps': No such file or directory`

This Так что ответ показал, что можно использовать yum reinstall glibc-common -y, чтобы исправить это, и это сработало.

Итак, моя последняя работа Dockerfile:

RUN yum reinstall glibc-common -y && \
  localedef -c -i fr_FR -f ISO-8859-15 fr_FR.ISO-8859-15 && \
  echo "LANG=fr_FR.ISO-8859-15" > /etc/locale.conf

ENV LANG fr_FR.ISO-8859-15
...