在 Ubuntu 上自动安装 postfix

在 Ubuntu 上自动安装 postfix

我的系统配置脚本执行了apt-get install -y postfix。不幸的是,当 Postfix 安装程序显示配置屏幕时,脚本会停止。有没有一种方法可以强制 Postfix 在安装期间使用默认值,以便自动脚本可以继续运行到最后?

Postfix 安装程序是否会检查是否存在现有配置/etc/postfix,如果存在,则不会让配置屏幕打扰用户?

答案1

您可以为此使用预先植入,使用命令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 --assume-yes postfix

答案2

如果你希望在全球范围内实现这一点:

dpkg-reconfigure debconf

然后将其配置为“非交互式

如果您只希望进行单次安装,请运行:

DEBIAN_FRONTEND=noninteractive apt-get install PACKAGE

答案3

当从不提供 here-strings( <<<) 的 shell 执行时,通过管道传输答案:

echo "postfix postfix/mailname string my.hostname.example" | debconf-set-selections
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive apt-get postfix

答案4

另一种方法是创建一个文件,例如 myconf:

postfix postfix/main_mailer_type  select Internet Site
postfix postfix/mailname          string your.hostname3.com

然后调用 debconf-set-selections 并将文件作为参数传递:

debconf-set-selections myconf

您也可以像其他答案一样,通过将字符串插入 debconf-set-selections 来执行此操作:

echo "postfix postfix/main_mailer_type select Internet Site"      | debconf-set-selections
echo "postfix postfix/mailname         string your.hostname3.com" | debconf-set-selections

使用管道方法的一种方式是,如果您想将它们从一台服务器传递到另一台服务器,如手册页中所述,使用debconf-get-selections以下位置提供的sister 命令debconf-utils

debconf-get-selections | ssh anotherserver debconf-set-selections

debconf-set-selections 存储它们的临时文件是:

/var/cache/debconf/config.dat

您可以检查内部,它应该包含您刚刚设置的设置:

Name: postfix/mailname
Template: postfix/mailname
Value: your.hostname3.com
Owners: postfix
Flags: seen

Name: postfix/main_mailer_type
Template: postfix/main_mailer_type
Value:  Internet Site
Owners: postfix
Flags: seen

然后只需运行安装程序,就不会有任何提示:

apt install postfix -y

现在如果你卸载 postfix:

apt remove postfix --purge

您会注意到根本没有任何 postfix 设置/var/cache/debconf/config.dat,所以如果您决定重新安装 postfix,并且之前没有再次运行 debconf-set-selections,您将得到通常的提示。

相关内容