Я пишу сценарий для установки сервера 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:
Я хочу автоматизировать это, так, чтобы это не спрашивало и просто продолжало установку.
Как я могу сделать это?
Вы могли использовать 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
добавленный.
"debootstrap является действительно просто сценарием оболочки" - от https://wiki.debian.org/Debootstrap
, Это означает, что Вы могли прочитать сценарий, чтобы видеть, существуют ли способы передать информацию через переменную среды, предоставить аргумент при вызове deboostrap или создать собственную измененную версию для определенного приложения.
От подобного вопроса о StackOverflow:
Если огибающая переменная DEBIAN_FRONTEND=noninteractive
установлен, в то время как Вы работаете apt-get install keyboard-configuration
, это не запросит взаимодействие. Таким образом, можно просто работать:
DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration
Это просто автоматизировать, просто необходимо установить надлежащую 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