Як автоматизувати налаштування пакету «конфігурація клавіатури»?


15

Я пишу сценарій для встановлення сервера 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: 

Я хочу автоматизувати це, щоб він не запитував, а просто продовжував установку.

Як я можу це зробити?


Відповіді:


15

З аналогічного питання StackOverflow:

Якщо змінна ENV DEBIAN_FRONTEND=noninteractiveвстановлена ​​під час запуску apt-get install keyboard-configuration, вона не вимагатиме жодної взаємодії. Отже, ви можете просто запустити:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration

2

Ви можете використовувати 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доданою.


Дякую, цікава ідея, але це могло б або витрачати багато часу, або періодично замерзати, коли установка зайняла більше часу, ніж очікувалося, залежно від тривалості сну.
fadedbee

Читання чоловічої сторінки xdotool - здається, це річ з X windows. Я намагаюся зробити це в середовищі сервера Ubuntu. Я оновлю своє запитання.
fadedbee

2

Це легко для автоматизації, вам просто потрібно встановити належну конфігурацію 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

1

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

Це означає, що ви можете прочитати сценарій, щоб побачити, чи є способи передавати інформацію через змінну середовища, подавати аргумент при виклику deboostrap або створити власну модифіковану версію для вашої конкретної програми.


Цей пакет встановлюється як частина apt-get install ....запуску після початкової деботстрапи.
fadedbee

Отже, ви говорите, що після apt-get install deboostrapвстановлення парадигма не дозволяє змінювати змінні середовища або запускати налаштований сценарій? Добре.
БенджамінБринк

Можливо, це допомагає. Це посилання показує приклад того, як налаштувати файл "попереднього насіння" для попереднього відповіді на підказки в установці Ubuntu: askubuntu.com/questions/122505/…
BenjaminBrink
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.