2013-11-17 2 views
1

Я пишу инструмент оценки безопасности ОС, который является графическим интерфейсом и проверяет наличие важных компонентов безопасности и позволяет пользователю устанавливать отсутствующие компоненты (например, IDS) с помощью одного " install button "Установите пакет, запустив новый терминал через Python

Я использую Pycharm как свою IDE. Я хочу установить отсутствующий компонент программного обеспечения через графический интерфейс, для которого я использую следующий код:

os.system("sudo apt-get install snort-mysql")

Когда пользователь нажимает кнопку «Установить» (через графический интерфейс я создал), приведенный выше код будет выполняться и он сможет следить за установкой, как всегда.

Однако, так как я использую IDE, когда кнопка установки нажата, то проблема в том, что я не могу ввести пароль, как я получаю следующее след в среде IDE:

sudo: no tty present and no askpass program specified

Sorry, try again.

Я пробовал использовать gksudo и смог ввести пароль. Но я получаю следующее, когда начинается установка:

After this operation, 18.3 MB of additional disk space will be used.

Do you want to continue [Y/n]? Abort.

gksudo с результатами сила у в gksudo: invalid option -- 'y'

Я хотел бы знать, если есть способ запустить отдельный терминал и начните с установки там.

ответ

2

Вы можете использовать gksudo и передать опция -y APT-получить установку не gksudo, т.е.

os.system('sudo "apt-get install snort-mysql"') 

или

os.system("sudo \"apt-get install snort-mysql\"") 

Вы также можете использовать subprocess.Popen с чтобы позволить вам взаимодействовать с подпроцессами.

+0

Это вы имеете в виду? "gksudo apt-get install -y snort-mysql" Я все еще получаю ту же ошибку. Пожалуйста, дайте пример – SidNoob

+1

Попробуйте: 'gksudo 'apt-get install -y snort-mysql" ' –

+0

Вы имеете в виду это: os.system (" gksudo "" apt-get install -y snort-mysql ") Я добрый путают. – SidNoob

Смежные вопросы