如何处理使用python-apt生成一个或多个配置对话框屏幕的apt安装?

时间:2014-01-16 11:44:32

标签: python apt

例如,在安装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

1 个答案:

答案 0 :(得分:1)

您可以使用

export DEBIAN_FRONTEND=noninteractive

然后使用debconf提供您选择的值。 这howto解释了

  

如果您想提供配置问题的答案,但又不想提示它,那么可以通过在DebConf数据库中预先提供所需信息来安排。你需要知道:

     
      
  • 负责提问的软件包的名称(如果有依赖项,可能不是您要求安装的软件包的名称),
  •   
  • 记录答案的配置数据库密钥,
  •   
  • 答案的类型(字符串,布尔值,选择,多选或密码)。
  •   

还可以在python-apt中使用apt_pkg.Configuration类提供配置选项。通过示例

apt_pkg.config.set("Dir", self.tmpdir)

然后,您必须找到配置脚本询问的选项的名称,并通过python脚本进行设置。