Ubuntu dpkg,非交互式安装

Ubuntu dpkg,非交互式安装

我正在尝试安装一堆 .deb 文件,而无需与它们交互。例如,MySQL Server 将提示在 dpkg 配置时输入交互式菜单以输入管理密码。

我努力了。

export DEBIAN_FRONTEND=noninteractive && export DEBIAN_PRIORITY=critical && sudo /usr/bin/dpkg -i ./files/*

我知道我可以直接提取文件而无需配置。我正在尝试创建一个 bash 脚本来部署预先配置了 Apache、php、mySQL 等默认安装的服务器。但是,这种“交互式安装”会导致问题。

关于如何禁用它,您有什么想法吗?或者有什么解决方法?

谢谢

答案1

你走在正确的轨道上。你肯定想使用DEBIAN_FRONTEND=noninteractive。对于不能忽略的关键问题,你需要预先在debconf数据库中植入必要的答案。debconf手册页有关于如何实现这一目标的所有细节。

答案2

对于一般的非交互式前端,您可以尝试:

sudo dpkg-reconfigure debconf -f noninteractive -p critical

要配置 MySQL 凭据,您可以使用服务器配置文件(例如~/.my.cnf),如:

[client]
user=root
password=root

要选择一些特定的内容,请使用debconf-set-selections,例如:

echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections

答案3

这应该有效:

$ pkgadd SOMEpkg << MYINPUT

y

some text

/usr/local

n

password

MYINPUT

我必须在上面的行之间放置空白行,否则会将其格式化为一行长行。无论如何,您都可以使用“script”命令在复杂的安装过程中保存输入,然后将输出修改为脚本,以便自动执行后续安装(man script)。

相关内容