Команда bash: как автоматически вводить пункты меню, которые появятся позже во время установки?

Команда bash: как автоматически вводить пункты меню, которые появятся позже во время установки?

В apt-get install -y python-catkin-toolsUbuntu вам придется ввести часовой пояс 8 для региона и 7 для города при установке «tzdata (2020f-0ubuntu0.18.04)».

Как мне запустить apt-get install -y python-catkin-toolsтак, чтобы выбор меню, который всплывает позже, сначала получал 8, а затем 7, как только ввод становится возможным? Я отметил цифры, которые нужно ввести, как ##

apt-get install -y python-catkin-tools

...

Setting up tzdata (2020f-0ubuntu0.18.04) ...
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
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located.

  1. Africa  2. America  3. Antarctica  4. Australia  5. Arctic  6. Asia  7. Atlantic  8. Europe  9. Indian  10. Pacific  11. SystemV  12. US  13. Etc
Geographic area: ##8##

Please select the city or region corresponding to your time zone.

  1. Amsterdam  6. Belgrade    11. Budapest    [shortened...]

Time zone:


Time zone: ##7##

Current default time zone: 'Europe/Berlin'
Local time is now:      Wed Jan 20 22:42:43 CET 2021.
Universal Time is now:  Wed Jan 20 21:42:43 UTC 2021.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

Мне нужно, чтобы это автоматически запускалось из Dockerfile, не спрашивая пользователя о вводе часового пояса во время установки. Я хотел бы узнать, как указать правильный часовой пояс в качестве параметра команды установки или просто как обходной путь заставить его использовать часовой пояс по умолчанию.

После недавнего запуска я обнаружил, что ввод чисел во время установки из Dockerfile тоже, похоже, не работает. Вводы ничего не запускают.

[...]
Setting up tzdata (2021a-0ubuntu0.18.04) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

  1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
  2. America     5. Arctic     8. Europe    11. SystemV
  3. Antarctica  6. Asia       9. Indian    12. US
Geographic area: 8

7
^C

Поскольку я предполагаю, что эта проблема не является специфичной для apt-get или ОС, я не помечаю ее как таковую. Пожалуйста, измените это, если я ошибаюсь.

решение1

У меня это не работает при создании Dockerfile:

(Вы все равно можете попробовать, также с внешней ссылкой)

Если вы хотите пройти через рабочее меню и вручную ввести значения по вашему выбору в меню, вам нужна "console-setup" (например, gnome-terminal с apt-get install -y gnome-terminal), чтобы иметь диалог терминала. Но я не смог заставить его работать с этим, вероятно, sshэто необходимо, см.этот ответ на «Невозможно инициализировать интерфейс: диалог при использовании ssh», в данном случае это будет означать активацию терминала (TERM) и использование «dialog» в качестве интерфейса:

TERM=$TERM DEBIAN_FRONTEND=dialog apt-get install -y python-catkin-tools


Это работает у меня при создании Dockerfile:

Если вы действительно хотите войти в пункты меню, следующий обходной путь не поможет. Если вас устраивают значения по умолчанию, в данном случае zone/city = "etc./etc.", то решение следующее, взято изМожно ли отвечать на вопросы диалога при установке под Docker?:

  1. Изменить apt-get install -y python-catkin-toolsна

    DEBIAN_FRONTEND=noninteractive apt-get install -y python-catkin-tools
    

подавляет меню команды, которая следует непосредственно за ней.

  1. Вы также можете отключить все меню во время установки Dockerfile, а затем поместить в начало:

    ARG DEBIAN_FRONTEND=noninteractive
    
  2. Не вводите это, так как это будет сохранено как настройка даже в изображении:

    ENV DEBIAN_FRONTEND=noninteractive
    

В лучшем случае используйте «1.», так как вы, возможно, не захотите подавлять все остальные появляющиеся пункты меню.

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