Я использую определенное программное обеспечение ( Asterisk ), которое включает в свое исходное дерево изящный маленький скрипт для автоматически загружать и устанавливать все необходимые пакеты из репозиториев вашего дистрибутива, включая, конечно, Ubuntu. Одно из этих предварительных условий ( libvpb1 ) требует некоторой информации (телефонный префикс страны по умолчанию), поэтому сценарий становится не таким автоматическим:
Безобидно иметь эту библиотеку, установленную в системе, которая не t запустить телефонию, так что вы можете протестировать ее самостоятельно.
Мой вопрос: как я могу заранее передать ответ неинтерактивно, чтобы apt-get install (или, скорее, dpkg -i) захватил его и использовал как будто он был напечатан на этом экране ncurses?
Было бы лучше общее решение, например, как мне узнать, требует ли какой-либо пакет подобная информация, и как установить ее из скрипта?
На вопрос, указанный в комментарии пользователя @user535733, был ответ; Я попытаюсь обобщить процедуру здесь.
Во-первых, установите пакет в интерактивном режиме и введите нужные значения;
Во-вторых, запустите это:
root@myhost:~# PACKAGE_NAME=libvpb1
root@myhost:~# debconf-get-selections | grep "^${PACKAGE_NAME}[[:blank:]]"
libvpb1 libvpb1/countrycode string 55
root@myhost:~#
В следующий раз, когда вам нужно будет установить пакет, просто передайте его вывод в debconf-get- selections
заранее:
root@myhost:~# echo 'libvpb1 libvpb1/countrycode string 55' | sudo debconf-set-selections -v
root@myhost:~# apt-get -y install libvpb1
В Ubuntu 20.04 debconf-get-selections
находится в пакете debconf-utils
.