Как автоматизировать установку пакета “настройки клавиатуры”?

Я пишу сценарий для установки сервера Ubuntu 16.04 в chroot тюрьму, с помощью debootstrap (на машине сервера Ubuntu 16.04).

Во время установки keyboard-configuration пакет это просит тип клавиатуры:

Setting up keyboard-configuration (1.108ubuntu15) ...
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 keyboard-configuration
----------------------------------

The layout of keyboards varies per country, with some countries having multiple
common layouts. Please select the country of origin for the keyboard of this
computer.

  1. Afghani                                     48. Irish
  2. Albanian                                    49. Italian
...    
  28. English (UK)                               75. Slovak
  29. English (US)                               76. Slovenian
...
  45. Icelandic                                  92. Vietnamese
  46. Indian                                     93. Wolof
  47. Iraqi
Country of origin for the keyboard: 

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

Как я могу сделать это?

12
задан 26 January 2017 в 01:27

4 ответа

Вы могли использовать xdotool. Когда запуск сценария поместил & sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return.

я не протестировал это, но это должно работать.

Ответ 2:

Выполнение команда, но с выводом, перенаправленным в файл (> testfile).

, Открывает другой терминал и выполняет

while true
do 
    if [ "$(tac testfile | grep -m 1 .)" = "Country of origin for the keyboard" ]
    then 
    xdotool type <number you want to put> && xdotool key Return && break
    fi
done  

Затем нажимает назад на первый терминал.

Ответ 3:

я думаю все, что необходимо сделать, помещается число, которое Вы хотите в файле, testfile, и выполняете команду с < testfile добавленный.

2
ответ дан 23 November 2019 в 03:38

"debootstrap является действительно просто сценарием оболочки" - от https://wiki.debian.org/Debootstrap

, Это означает, что Вы могли прочитать сценарий, чтобы видеть, существуют ли способы передать информацию через переменную среды, предоставить аргумент при вызове deboostrap или создать собственную измененную версию для определенного приложения.

1
ответ дан 23 November 2019 в 03:38

От подобного вопроса о StackOverflow:

Если огибающая переменная DEBIAN_FRONTEND=noninteractive установлен, в то время как Вы работаете apt-get install keyboard-configuration, это не запросит взаимодействие. Таким образом, можно просто работать:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration
11
ответ дан 23 November 2019 в 03:38

Это просто автоматизировать, просто необходимо установить надлежащую debconf конфигурацию для этого пакета.

Первая установка debconf-utils:

sudo apt install debconf-utils

Если Вы уже настроили пакет, можно прочитать debconf конфигурацию с:

debconf-get-selections | grep keyboard-configuration

Если бы Вы не настроили пакет или хотели бы изменить свои выборы, можно сделать это с:

dpkg-reconfigure keyboard-configuration

Экспортируйте свои выборы в файл

debconf-get-selections | grep keyboard-configuration > selections.conf

Копия selections.conf к целевой машине и набору выборы:

debconf-set-selections < selections.conf

Когда Вы установите или реконфигурируете пакет, Ваш выбор будет теперь выбран автоматически.

dpkg-reconfigure keyboard-configuration -f noninteractive
2
ответ дан 23 November 2019 в 03:38

Другие вопросы по тегам:

Похожие вопросы: