Автоматизировать установку постфикса в Ubuntu

65

Мой скрипт конфигурации системы выполняет "apt-get install -y postfix". К сожалению, скрипт останавливается, когда установщик postfix отображает экран конфигурации. Есть ли способ заставить postfix использовать значения по умолчанию во время установки, чтобы автоматический сценарий мог продолжаться до конца?

Может ли установщик postfix проверить существующую конфигурацию в / etc / postfix и, если она существует, не беспокоить пользователя с экраном конфигурации?

Sutch
источник

Ответы:

83

Для этого вы можете использовать предварительное заполнение, используя debconf-set-selectionsкоманду для предварительного ответа на вопросы, заданные debconf перед установкой пакета.

Например:

debconf-set-selections <<< "postfix postfix/mailname string your.hostname.com"
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
apt-get install -y postfix
ℝaphink
источник
Каковы доступные варианты main_mailer_type? Есть ли где-нибудь список, на который можно ссылаться, без необходимости запускать его интерактивно один раз?
бэпортер
2
beporter, по- видимому: No configuration, Internet site, Internet with smarthost, Satellite system, Local onlyоднако, похоже Интернет сайт , как правило , лучший выбор для большинства людей: bugs.debian.org/cgi-bin/bugreport.cgi?bug=450787
willbradley
1
Может ли какое-то тело объяснить, как мы можем получить эту строку для других пакетов? (kerberos в моем случае): "postfix postfix / mailname string your.hostname.com" Я имею в виду, что такое первый "postfix", а второй "postfix /", а затем "mailname" и т. д .... где можно я получил эти строки для моего пакета?
Мухаммед Нурельдин
Я знаю, что вопрос касается Ubuntu, но мне это нужно для Amazon Linux (AWS), который является ответвлением от RHEL ... Кто-нибудь?
TheStoryCoder
@MohammedNoureldin Глядя на это man debconf-set-selections, я вижу, что есть также то, debconf-get-selectionsчто выводит то, что выбрано в текущей системе, в формате, используемом здесь для ввода. Вы можете вручную настроить одну систему, а затем просто запустить ее, чтобы увидеть, что использовать для Kerberos.
Морганвал
25

Если вы хотите это глобально:

dpkg-reconfigure debconf

Затем настройте его как « неинтерактивный »

Если вы просто хотите запустить один раз:

DEBIAN_FRONTEND=noninteractive apt-get install PACKAGE
Дэвид Рикман
источник
2
Вы также можете сделать это, export DEBIAN_FRONTEND=noninteractiveчтобы установить его глобально без присмотра.
Ман
Я обнаружил, что это хорошо работает в Ubuntu 14.04 для установки по умолчанию «доставить в локальную / var / mail», тогда как debconf-set-selectionsответ выше не помог.
RichVel