我有一个包,让我们称之为foo,它有一个依赖项,而这个依赖项又依赖于后缀。我正试图通过使用debconf回答问题来自动安装foo。foo的要求是它必须能够安装和配置所有内容,并且必须使用进行安装
sudo apt-get install foo
所以这样的事情是不可接受的:
DEBIAN_FRONTEND=noninteractive apt-get install -y foo
此外,请注意foo是在Ubuntu的新安装上安装的。
我尝试的第一件事是(在我的预安装脚本中(:
echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
但这并没有奏效。这些问题仍然出现在装置中。
然后我试了一下:
echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive apt-get install -y postfix
这个:
echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive apt-get install -y postfix << _EOT
y
EOT
然后我想:
如果debconf实用程序被放在Pre-Dependens中呢?那没用。
但是,如果我执行以下操作(从命令行而不是预安装脚本(,那么安装就可以毫无疑问地进行:
sudo apt-get install debconf-utils
echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
sudo apt-get install foo
然而,对于我所得到的要求来说,这是不可接受的。
所以现在我被卡住了。如果有人能找出我做错了什么,我将不胜感激,因为我已经寻找了一段时间的答案。
这似乎很奇怪,您不需要安装debconf-utils
来设置dpkg的数据
如果要阻止对话框窗口,请尝试使用dpkg
选项:--force-confdef(force to keep default option without prompting)
--force-confold (force to keep old conf files)
最后,它将是这样的:echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
sudo apt-get install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" foo
我希望这会有所帮助。如果没有,请在这里通知我们。