Я пытаюсь автоматизировать установку tripwire через apt-get через модуль подпроцесса Python в Ubuntu Linux. Проблема заключается в том, что в процессе установки Tripwire запрашивает у меня настройку почты Postfix, устанавливая site.key и local.key через различные настройки страниц конфигурации (см. Прикрепленное изображение), которые появляются после установки apt-get.Автоматическая установка tripwire через python в Linux
Как использовать модуль подпроцесса для взаимодействия с этими страницами?
from subprocess import *
p=Popen("apt-get install tripwire",stdout=PIPE,stdin=PIPE,stderr=PIPE,shell=True)
p.communicate(input="Y\n") # Y = Yes to confirm installation of the package through apt-get
Я пытался использовать «STDIN = PIPE», но есть несколько проблем с взаимодействующим с этими терминалами страниц:
Этих страницы появляются после того, как пакет будет загружен и в настоящее время настроен, поэтому я должен реализовать какую-то задержку для появления .
Кроме того, мне нужно реализовать клавиши со стрелками вверх и вниз, чтобы выбрать различные параметры.
Благодаря
Джон
Благодаря Крис ... однако, я все еще получаю диалоговое окно конфигурации натяжные спрашивают меня, я хочу, создать ли сайту ключевую фразу, когда я использую автоматического подтверждения и тихий режим. – John
Хорошо, позвольте мне уточнить ответ. – Chris
Спасибо, Крис ... это определенно работает. Первоначально это не сработало, пока я не понял, что я установил переменную env в неправильном контексте (обычный пользователь, а не root) .... так что я «sudo su» и выполнил команду export. Затем я вышел из su, выполнил команду sudo apt-get (поскольку apt-get обычно устанавливает с помощью имитационного корня) и установил tripwire ..., который работал, не показывая мне никаких интерфейсных экранов терминала ... спасибо. – John