Ошибки при попытке установки пакетов с помощью tasksel в контейнерах Debian 9

Ошибки при попытке установки пакетов с помощью tasksel в контейнерах Debian 9

Я использую Docker desktop community 2.0.3. Я запустил официальные контейнеры nginx и Apache HTTP server из docker hub (hub.docker.com). Образы контейнеров основаны на Debian 9. Затем я попытался установить стандартные системные утилиты Debian с помощью tasksel. Я открыл терминал в контейнере с помощью:

docker exec -ti container_id bash

Я попытался запустить установку tasksel

# tasksel install standard
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.)
debconf: falling back to frontend: Teletype
Installing packages
-------------------

..100%

Проблемы следующие:

  • Он не открывает TUI (текстовый пользовательский интерфейс) задач, как показано на снимке экрана.
  • Я получаю указанные выше ошибки и установка не завершается.

Рабочий стол Docker установлен на macOS 10.12

Тасксел

решение1

Для использования taskselвам необходимо установить dialog; в вашем контейнере:

apt update && apt install -y dialog tasksel

Затем

tasksel install standard

будет работать с обычным интерфейсом.

Передавать переменную не нужно TERM.

Многие стандартные утилиты не слишком полезны в контейнере, однако, если бы мне пришлось это сделать, я бы использовал aptitudeвместо этого tasksel:

apt update && apt install -y aptitude && \
aptitude install -y ~pstandard ~prequired ~pimportant

решение2

Оказывается, ncurses требует эту команду: https://stackoverflow.com/a/38774123/3341782 Не уверен, что есть лучшее решение.

Связанный контент