Я пишу приложение, которое должно позволить пользователю устанавливать некоторые дополнительные пакеты, когда это необходимо. Я хотел бы создать пользовательский графический интерфейс, который собирает пакеты debconf вместе с некоторыми другими вопросами из моего приложения. Затем я установлю пакет, используя aptd или что-то еще, и на все вопросы, задаваемые сценарием установки пакета, будут даны ответы в полях моего пользовательского графического интерфейса.
Как мне это сделать?
Похоже, что команда debconf-set-selections
из пакета debconf-utils
подходит для этого.
Формат прост: debconf-set-selections [filename]
Если имя файла не указано, оно получает свой ввод из stdin. Формат самих строк ответа также прост: < packagename> < question_name> < datatype> < value>
.
Итак, если вы хотите установить mysql-server
с использованием заранее определенного пароля, то вы создадите такой файл (mysql-prefs.seed)
mysql-server-5.5 mysql-server/root_password password my_root_password
mysql-server-5.5 mysql-server/root_password_again password my_root_password
Тогда Вы вставляете эти ответы в базу данных debconf, выполняя debconf-set-selections mysql-prefs.seed
. Наконец, вы просто устанавливаете пакет как обычно: sudo apt-get install mysql-server -yq
и пароль пользователя root MySQL теперь будет «my_root_password».
Я не знаю, является ли это лучшим способом сделать это, но это, безусловно, работает, и это достаточно просто.