通过apt-get软件包安装问题的默认答案?

我正在尝试为新服务器编写一个configuration脚本,第一步是使用apt-get install来安装一系列必需的软件包,例如MySQL,phpMyAdmin等。但是,当dpkg尝试configuration它时,要求您提供一些选项,例如MySQL root密码,phpMyAdmin密码,使用哪个服务器等。

因为我可能会把这个脚本传递给不太可能阅读提示的同事,而且我希望简单地启动它并离开, 我想知道如何传递一系列“默认”答案/值使用。 这可能包括在命令行上传递的用户名/密码/其他dynamic值。

我意识到,在脚本中使用密码是一个安全问题,但我愿意忽略它,特别是在安装软件包的更一般的意义上,这意味着一个答案。

使用debconf的configuration预置。

做一个testing安装来获得你想要的值:

 root@test1:~# apt-get install mysql-server 

..并在安装期间提示时设置根密码。

然后你可以检查你刚才安装的debconf设置是什么样的(你可能需要安装debconf-utils ):

 root@test1:~# debconf-get-selections | grep mysql-server mysql-server-5.5 mysql-server/root_password_again password mysql-server-5.5 mysql-server/root_password password mysql-server-5.5 mysql-server/error_setting_password error mysql-server-5.5 mysql-server-5.5/postrm_remove_databases boolean false mysql-server-5.5 mysql-server-5.5/start_on_boot boolean true mysql-server-5.5 mysql-server-5.5/nis_warning note mysql-server-5.5 mysql-server-5.5/really_downgrade boolean false mysql-server-5.5 mysql-server/password_mismatch error mysql-server-5.5 mysql-server/no_upgrade_when_using_ndb error 

这里有一些噪音,但重要的是密码设置。

然后,为了全新安装,您可以事先通过设置密码完全避免提示:

 root@test2:~# echo "mysql-server-5.5 mysql-server/root_password_again password Som3Passw0rd" | debconf-set-selections root@test2:~# echo "mysql-server-5.5 mysql-server/root_password password Som3Passw0rd" | debconf-set-selections root@test2:~# apt-get install mysql-server 

在安装过程中根本没有提示。

 export DEBIAN_FRONTEND=noninteractive apt-get -q -y install _packages_