Эмуляция ввода с клавиатуры при установке пакетов

Автор mmx-dev, 31 августа 2020, 16:47:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

mmx-dev

Комрады, доброго дня!
Сорян за что вопрос не совсем связанный с Debian. Я только осваиваю linux и задал подобный вопрос на форумах ubuntu и linux.org.

Понадобилась автоматизация установки пакета libwebkitgtk... на Ubuntu 20.04 LTS
Если в скрипте использовать менеджер пакетов apt install -y libwebkitgtk-3.0-0, то через некоторое время (минут через 15 хода установки) скрипт прерывается и запрашивается ввод с клавиатуры - страна, язык раскладки и т.д.
В интернете нашел, что можно использовать debconf-set-selections. Не могу разобраться с синтаксисом  :'( хелп

mmx-dev

Я разобрался...

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

Приведу рабочий кусок скрипта (синтаксис Dockerfile) и далее поясню:

...
## переменные окружения для apt отключающие интерактивный режим
ENV DEBIAN_FRONTEND=noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN=true

RUN echo "keyboard-configuration keyboard-configuration/variant select Russian" > /tmp/pressed.txt; \
    echo "keyboard-configuration keyboard-configuration/layout select Russian" >> /tmp/pressed.txt; \
    echo "keyboard-configuration keyboard-configuration/toggle select Ctrl+Shift" >> /tmp/pressed.txt; \ 
    debconf-set-selections /tmp/pressed.txt && apt install -y libwebkitgtk-3.0-0
...


1. Для того чтобы понять, что нужно "скормить" debconf-set-selections - устанавливаем утилиты debconf-utils
2. Далее в обычном режиме устанавливаем нужный нам пакет apt install -y libwebkitgtk-3.0-0, отвечая на вопросы при установке.
3. Т.к. ранее мы установили debconf-utils, то нам доступна утилита debconf-get-selections, запустив которую мы получим полный список вопросов и ответов.

Вопрос будет начинаться с символа #,
а ответ будет в том формате, в котором мы его можем передать в скрипте: keyboard-configuration keyboard-configuration/variant select Russian

где

  • keyboard-configuration - это имя пакета, которому принадлежит вопрос,
  • keyboard-configuration/variant - это имя вопроса,
  • select - это тип вопроса,
  • Russian - это значение используемое для ответа на вопрос.

Естественно, при первой установке всего пакета, я запомнил/скопировал вопросы (все они касались клавиатуры), поэтому debconf-get-selections | grep keyboard
и уже в ограниченном списке искал вопросы/ответы

4. В самом скрипте, я помещаю нужные мне ответы в файл /tmp/pressed.txt, который отдаю уже другой утилите debconf-set-selections перед запуском менеджера пакетов apt