我正在尝试安装一堆 .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
)。