Как выбрать ответ на интерактивный запрос во время установки из скрипта оболочки

Как выбрать ответ на интерактивный запрос во время установки из скрипта оболочки

Я пишу скрипт оболочки для установки всех необходимых приложений на мой Ubuntu PC за один раз (пока я могу прогуляться или заняться чем-то еще). Для большинства приложений добавление -yв конец оператора apt-get installхорошо сработало, чтобы избежать необходимости какого-либо участия пользователя. Мой скрипт выглядит примерно так:

#!/bin/bash
add-apt-repository ppa:webupd8team/sublime-text-3 -y
apt-get update -y
apt-get upgrade -y
apt-get install synaptic -y
apt-get install wireshark -y

Хотя мне больше не нужно беспокоиться о Do you want to continue? [Y/n]или Press [ENTER] to continue or ctrl-c to cancel adding it, проблема заключается в wireshark, который требует ответа на интерактивную подсказку, как показано ниже:

Запрос Wireshark

Как мне избежать этого обязательного вмешательства?

решение1

Настройтеdebconfбаза данных:

echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections

Затем установитеWireshark:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark

Вы также можете захотеть подавить выводapt-get. В таком случае:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install wireshark > /dev/null

решение2

Система apt/dpkg может обеспечивать неконтролируемую или неинтерактивную установку.

Это включает в себя установку DEBIAN_FRONTENDпеременной noninteractiveи использование -yфлага. Например:

export DEBIAN_FRONTEND=noninteractive
apt-get -y install [packagename]

Если вы получаете ошибки, вам, возможно, придется установить опцию, qчтобы более убедительно доказать, dpkgчто вы действительно выполняете неинтерактивную установку: DEBIAN_FRONTEND=noninteractive apt-get -yq install [packagename].

В некоторых случаях может быть проще следовать подсказкам для некоторых пакетов, которые вы установите позже в том же процессе скрипта/оболочки. В этом случае вам может потребоваться отменить экспорт переменной DEBIAN_FRONTEND:

unset DEBIAN_FRONTEND

Для предварительной настройки параметров конфигурации полезно иметь debconf-utilsустановленный , который позволит выполнить команду debconf-get-selections:

sudo apt-get install debconf-utils

Ресурсы, которые могут быть вам полезны

Связанный контент