Вопрос

Я пытаюсь создать скрипт, который автоматически загружает пакеты для новых серверов.Однако некоторые вещи, такие как 'mysql-server', не могут быть установлены автоматически, потому что вам сначала нужно настроить их в интерфейсе ncurses.Я просмотрел справочные страницы и не могу найти ничего подходящего.

Меня не волнует, придется ли мне позже загружать / редактировать файл conf - мне просто нужно установить соответствующие пакеты.

Кто-нибудь знает, что делать, кроме того, чтобы брать тарболы и делать их самому?

Обновить обнаружил, что для таких вещей, как mysql-server, вы можете просто сделать:

DEBIAN_FRONTEND='noninteractive' apt-get install -yq mysql-server

однако expect выглядит как то, что мне понадобится для sun-java6-jdk;я еще не оценил это

Это было полезно?

Решение

Для пакетов, которые задают вопросы через debconf (именно это выводит на экран ncurses), вы можете предварительно ответить на вопросы.Для sun-java на вопросы можно предварительно ответить, следуя инструкциям на http://www.davidpashley.com/blog/debian/java-license

Другие советы

Ответ от ossramblings.com:

Сначала установите свой пакет обычным способом;затем извлеките ответы на вопросы о конфигурации из файлов данных debconf:

sudo apt-get install debconf-utils
sudo debconf-get-selections | grep mypackage > something.seed

Затем, для других установок, вы можете применить его перед установкой пакета:

sudo debconf-set-selections ./something.seed

Любой пакет Debian, который использует debconf для получения значений конфигурации можно запускать без присмотра.Фокус в том , что debconf сначала будет выполнен поиск предустановленных ответы к любой конфигурации вопрос который есть в данном пакете.

Ответы на вопросы о предварительной установке конфигурации

Просто создайте файл в следующем формате,

# Use one line for each question
package-name question-name question-type answer
package-name question-name question-type really long \
answer here
package-name question-name question-type answer
...

и подайте это в систему вот так:

$ debconf-set-selections my-selections-file

Теперь вы готовы к apt-get install, как обычно.

Одноразовый

Поскольку эта команда также считывается из stdin, вы можете выполнить:

$ echo "man-db man-db/auto-update boolean true" | debconf-set-selections

Поиск ответов по умолчанию

Как вы узнаете, какие пакеты используют эти ответы на вопросы о конфигурации?Что ж, если вы уже установили рассматриваемый пакет в интерактивном режиме, вы можете запросить свою локальную систему, чтобы узнать, какие значения настроены в данный момент. debconf-get-selections выводит список всех конфигурационных ответов для текущей системы.Например

$ debconf-get-selections | grep '^man'

возвращает следующее в моей системе:

man-db  man-db/install-setuid   boolean false
man-db  man-db/auto-update      boolean true

Возможно, вам потребуется установить debconf-utils пакет, чтобы сделать эту команду доступной.

Образец

# Preset values to questions which would otherwise be asked while
# installing packages.
# Use debconf-set-selections to install
openssh-server  openssh-server/permit-root-login        boolean false
man-db  man-db/install-setuid   boolean false
man-db  man-db/auto-update      boolean true

Источники

Я не уверен точно, какая конфигурация нужна mysql-серверу, но вы могли бы попробовать что-то вроде ожидать

Я бы изучил cron-способный.Я сам этого не пробовал, но описание упаковки звучит многообещающе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top