debconf-set-selections mysql_debconf 和 dpkg-preconfgure 的用法

debconf 是 Debian 使用的一种软件包配置方法。支持 debconf 的软件在安装时,会弹出对话框,要求用户输入一定配置参数。

在非交互式环境下安装这类软件,用户无法在线提供软件的配置项。因此用户需要通过 dpkg-preconfigure 预先指定软件配置。

目前 dpkg-preconfigure 的用法比较奇怪。没有非常完美的用法,总觉得怪怪的。下面这个方案应该是我从网上可以找到,综合比较靠谱的。

1. 导入 debconf 模板

debconf 模板包含软件的配置项的名称、说明、默认值等内容。一般来说 debconf 模板是包含在 deb 包中。由于需要在安装 deb 时自动提供软件配置,所以需要在安装 deb 包之前,提前导入 debconf 模板。过程如下。

apt-get clean (清除 apt/cache 中缓存的 Debian 包)

apt-get install -d mysql-server-5.0 (下载 mysql-server-5.0,不安装)

dpkg-preconfigure /var/cache/apt/archives/mysql-server-5.0*.deb (导入 debconf 模板)

不完美的地方就在这里:导入一个软件的配置项,竟然要用三个命令。总觉得应该一个命令搞定。。。

2. 指定 debconf 配置

模板导入之后,可以使用 debconf-set-selections 设置软件配置。用下面的命令:

# debconf-set-selections

debconf mysql-server-5.0/start_on_boot select true

debconf mysql-server-5.0/start_on_boot seen true

(ctrl+d)

上面命令将 mysql-server-5.0/start_on_boot 设置为 true,并且设置配置项已经显示(区分配置项的值是默认值,还是用户输入值)。一般来说,软件安装时,只会显示 seen 为 false 的那些配置参数。

如果不知道软件有哪些配置选项,可以用 debconf-show 看到:

# debconf-show mysql-server-5.0

mysql-server/root_password_again: (password omitted)

* mysql-server/root_password: (password omitted)

mysql-server-5.0/really_downgrade: false

mysql-server-5.0/need_sarge_compat: false

mysql-server-5.0/start_on_boot: true

mysql-server/error_setting_password:

mysql-server-5.0/nis_warning:

mysql-server-5.0/postrm_remove_databases: false

mysql-server-5.0/need_sarge_compat_done: true

mysql-server/password_mismatch:

上面每行输出中第一个 * 表示 seen 为 true,没有星号表示 seen 为 false;每行输出中,冒号前面配置项,冒号后是值。

3. 安装软件

如果所有的 debconf 选项都通过上面的方法设置完毕。用下面的方法安装

apt-get install mysql-server-5.0

此时应该不会显示 debconf 的对话框。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值