例如,在安装 lirc 软件包时,它会给出配置对话框屏幕。如何自动化以选择默认值(或可能提供特定值)并继续?
现在我有一个简单的脚本:
#!/usr/bin/env python
import apt
import sys
pkg_name = "lirc"
cache = apt.cache.Cache()
cache.update()
pkg = cache[pkg_name]
if pkg.is_installed:
print "{pkg_name} already installed".format(pkg_name=pkg_name)
else:
pkg.mark_install()
try:
cache.commit()
except Exception, arg:
print >> sys.stderr, "Sorry, package installation failed [{err}]".format(err=str(arg))
配置窗口如下链接所示http://cdn.avsforum.com/d/db/db48d778_vbattach158986.jpeg
您可以使用
export DEBIAN_FRONTEND=noninteractive
,然后使用debconf
提供您选择的值。本操作指南说明
如果您想提供配置问题的答案,但不想被提示,那么可以通过在 DebConf 数据库中预先插入所需信息来安排。您需要知道:
- 负责提问的软件包的名称(如果有依赖项,可能不是您要求安装的软件包),
- 记录答案所依据的配置数据库密钥,以及
- 答案的类型(字符串、布尔值、选择、多选或密码)。
还可以提供配置选项,与apt_pkg.Configuration
类python-apt
。通过示例
apt_pkg.config.set("Dir", self.tmpdir)
然后,您必须找到配置脚本要求的选项的名称,并通过python脚本进行设置。