我想通过 apt 非交互式安装 Chef,但默认情况下,apt 安装会显示以下提示:

有没有办法在安装过程中跳过此步骤或将值传递给 apt install?我只使用chef-solo,所以实际上并不需要服务器组件,所以只需在此提示上按回车即可。
我想在运行 Ubuntu 12 虚拟机的Travis CI上安装 MySQL 5.7 。
我愿意使用官方 MySQL APT 存储库:
wget http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu12.04_all.deb
sudo dpkg --install mysql-apt-config_0.2.1-1ubuntu12.04_all.deb
Run Code Online (Sandbox Code Playgroud)
但问题是,安装此软件包会打开一个交互式菜单,询问以下问题:
Which Server version do you wish to receive?
- mysql-5.6
- mysql-5.7-dmr
Run Code Online (Sandbox Code Playgroud)
由于安装是自动脚本的一部分,我不在终端后面回答这个问题。我在文档中唯一能找到的是:
选择主要发布版本
默认情况下,您的 MySQL 服务器和其他必需组件的所有安装和升级都来自您在安装配置包期间选择的主要版本的发布系列(请参阅添加 MySQL APT 存储库)。但是,您可以随时通过重新配置已安装的配置包来切换到另一个受支持的主要版本系列。使用以下命令:
shell> sudo dpkg-reconfigure mysql-apt-config
Run Code Online (Sandbox Code Playgroud)
但同样,这会打开一个交互式菜单。
如何安装此 APT 存储库并将其配置为mysql-5.7-dmr在非交互式 shell 上使用?
我想在安装新系统时复制为我的系统当前配置所做的 Debian 安装选择。
Debian 可以通过“预配置”(又名“preseed”)文件进行预配置,该文件基本上包含安装程序将提出的问题的答案。
该文档指出,从现有 Debian 安装创建预配置文件的一种方法是:
...使用
debconf-get-selectionsdebconf-utils 包中的 将 debconf 数据库和安装程序的 cdebconf 数据库转储到单个文件中:
$ debconf-get-selections --installer > file
$ debconf-get-selections >> file
但它随后立即补充说:
但是,以这种方式生成的文件将包含一些不应预置的项目...
该文档没有详细说明那些不应该预先设定的项目是什么。
有人可以详细说明吗?
作为说明,下面我包含了从上面两个命令获得的输出的第二个字段,我只保留了以 开头的行d-i以及注释,有时为了简洁起见会被截断。(只保留开头的配置行的原因d-i是在Debian 提供的示例预配置文件中,只出现了这样的行。)
# Check the integrity of another CD-ROM?
cdrom-checker/nextcd
# Web server started, but network not running
save-logs/no_network
# for internal use only
debian-installer/consoledisplay
debian-installer/shell-plugin
# Country, territory or area:
# Choices: Antigua and Barbuda, Australia, Botswana, Canada, ...
localechooser/shortlist …Run Code Online (Sandbox Code Playgroud) 假设我想mysql从脚本安装,而不会被问到任何配置问题,比如我想设置什么 root 密码apt。然后我会预设debconf变量:
echo mysql-server-5.5 mysql-server/root_password password xyzzy | debconf-set-selections
echo mysql-server-5.5 mysql-server/root_password_again password xyzzy | debconf-set-selections
Run Code Online (Sandbox Code Playgroud)
我从教程中得到了这个。我不清楚的是:这家伙是如何找出变量名称的?他怎么知道他必须分别设置mysql-server-5.5 mysql-server/root_password password和mysql-server-5.5 mysql-server/root_password_again?
我知道我可以.deb通过发出来提取包dpkg-deb -R package.deb EXTRACTDIR/- 但我没有看到这些变量的存储位置。
我如何找出debconf任何其他包的变量?
我正在尝试找到一些未安装的软件包(如 ufw)的可用 debconf 配置选项(该软件包支持哪些键值对,如果可能,还有每个说明),但我还没有找到 debconf* 二进制文件的方法检查它们。有什么我想念的吗?
我有一个 Debian 软件包,上面说它XYZ.deb在安装时复制了一些文件。
根据 Debian 软件包卸载政策,只有那些在安装过程中复制的文件才会被删除。Debian 也不删除conf文件。
XYZ 包安装了一些 Python 脚本,这些脚本在执行时会创建.pyc文件。现在在卸载时我想删除所有文件。干净地删除包的 postrm 脚本是什么?