Автор Тема: Проблемы в контейнерах LXC для PVE  (Прочитано 4900 раз)

Оффлайн ozolexx

  • Начинающий
  • *
  • Сообщений: 8
Установлен alt-p8-server-pve-latest-x86_64 (по инструкции https://www.altlinux.org/PVE).
На этом сервере была создана VM alt-8-server-x86_64 (не контейнер).
На ней были настроены инструменты m-p для создания шаблона контейнеров ve/systemd-bare.tar.gz (инструкция https://www.altlinux.org/PVE/LXC).
Из полученного шаблона были созданы пара контейнеров для тренировок.
Первое, с чем сталкиваемся в новом контейнере - отсутствие русской локализации (в ubuntu, centos, debian, arch - везде).
Но во всех этих дистрибутивах проблема решается просто:
смотрим локализацию
locale
смотрим наличие локализаций
locale -a

В Debian-подобных и в Arch:
1) если нет нужной - правим /etc/locale.gen
2) генерируем локаль:
locale-gen

И устанавливаем ее как основную:
localectl set-locale LANG=ru_RU.UTF-8

В CentOS все локали сразу были на месте, там просто ставим нужную:
localectl set-locale LANG=ru_RU.UTF-8

Затем:
reboot

В контейнере Alt-8 все очень аскетично, нет даже программы locale.
Просмотр через localectl list-locales не выдает ни одной локали.
После установки locale проверка показывает наличие большого списка локалей.
Но установка локали как в других современных дистрибутивах не прокатывает.
Локаль вроде бы меняется, а кракозябрики остаются (показателен запуск mc).
Ситуацию исправляет правка файла /etc/sysconfig/i18n:
LANG=ru_RU.UTF-8
SUPPORTED=ru_RU.UTF-8
После перезагрузки mc запускается красивым.
На этом можно было бы и успокоиться, но...
Запускаем:
aptitude search ^apache
и получаем список, в котором описания частично английские, частично русские, частично - вопросики.
Запуск apt-cache search в тех же строках выдает квадратики вместо вопросиков.
На обычной машине вопросиков нет, там русское описание нормально отображается в обеих программах.

Куда копать? Где не локализовалось еще? Почему в одном списке русские описания в разных кодировках?
« Последнее редактирование: 24.06.2018 19:42:58 от ozolexx »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Локализация в контейнерах CT для PVE
« Ответ #1 : 22.06.2018 19:50:43 »
Унаследовано.
Андрей Черепанов (cas@)

Оффлайн ozolexx

  • Начинающий
  • *
  • Сообщений: 8
Re: Локализация в контейнерах CT для PVE
« Ответ #2 : 24.06.2018 13:40:57 »
Унаследовано от чего?

Если речь идет о наследовании от хост-машины, на которой крутятся контейнеры, то на ней вывод поискового запроса (и в apt-cache и в aptitude) нормальный.

Если речь об унаследованных разных кодировках в репозиториях, то почему тогда на полноценных машинах (не контейнерах) вывод этого же списка нормальный.

Если же речь об унаследованных проблемах при сборке контейнера, то это нужно исправлять разработчикам, причем оперативно, ведь переходим на отечественный софт же!

Хотелось бы получить более развернутое объяснение, а лучше - способ исправления этой ситуации.
А если уж совсем идеально - почему бы не выложить ссылку на готовый рабочий контейнер, как это делают разработчики Proxmox (http://download.proxmox.com/images/system/).

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: Локализация в контейнерах CT для PVE
« Ответ #3 : 24.06.2018 15:46:22 »
Очевидно, в контейнере криво выставлена локаль, что с разными кодировками описаний в пакетах выдаёт неверный результат.
Официальных контейнеров от Альт не публиковалось и, если бы были, локаль там была бы не приоритетна.
Андрей Черепанов (cas@)

Оффлайн ozolexx

  • Начинающий
  • *
  • Сообщений: 8
Re: Локализация в контейнерах CT для PVE
« Ответ #4 : 24.06.2018 18:11:37 »
Ваш ответ - это сильно сокращенный мой вопрос.
А я специально все расписал подробно, чтобы не заставлять знающих форумчан гадать на кофейной гуще.
Хотелось бы получить ответ по существу, а не констатацию вышеизложенных фактов.

Если кому интересно поиграться и есть под рукой машинка с PVE, даю ссылку на файл шаблона контейнера:
https://cloud.mail.ru/public/L9bH/JC9rGfAgX

Оффлайн ozolexx

  • Начинающий
  • *
  • Сообщений: 8
Re: Проблемы в контейнерах LXC для PVE
« Ответ #5 : 24.06.2018 20:10:56 »
Еще одна проблемка.

В ssh-сеансе под обычным пользователем запускаем mc, пытаемся спрятать панели (Ctrl+o), получаем сообщение:
Cannot open master side of pty: Отказано в доступе (13)Копаем причину, выясняется, что разрешения на /dev/ptmx стоят 0000 вместо положенных 0666.

Проверяем файлы
/lib/udev/rules.d/50-udev-default.rules
/lib/udev/initramfs-rules.d
и там имеем в каждом по строке:
SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666"В каталоге /etc/udev/rules.d/ никаких дополнительных директив нет.

Заходим под root, запускаем mc, прячем панели - все ОК.
Далее меняем разрешения на /dev/ptmx на 0666, возвращаемся из под root в обычную сессию, прячем панели - все ОК.
Но после перезагрузки опять перестает работать. Проверяем разрешение на файл - опять 0000.

Как такое вообще может быть, ведь разрешения явно заданы в правилах udev?

Оффлайн ozolexx

  • Начинающий
  • *
  • Сообщений: 8
Re: Проблемы в контейнерах LXC для PVE
« Ответ #6 : 26.06.2018 15:37:19 »
1. По поводу локализации - решение найдено.

После развертывания контейнера altlinux в системе нет никаких локалей, кроме POSIX.

Нужно установить:
glibc-locales - The GNU libc locales
iconv         - The GNU libc charset conversion modules

В файл /etc/sysconfig/i18n (по умолчанию - пустой) добавить строки:
LANG=ru_RU.UTF-8
SUPPORTED=ru_RU.UTF-8
Выполнить команду
localectl set-locale LANG=ru_RU.UTF-8
Перезагрузить.

glibc-locales добавляет файлы локализации и утилиту locale
iconv позволяет конвертировать налету вывод таких программ, как apt.
В репозитории описание программ хранится в разных кодировках,
iconv приводит это безобразие к нормальному виду.


2. По поводу разрешений на файл /dev/ptmx - я все еще надеюсь на помощь местных старожилов.