Как справиться с установкой apt, которая выдает еще одно диалоговое окно конфигурации, используя 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 ответ

Ты можешь использовать

export DEBIAN_FRONTEND=noninteractive

а затем использовать debconf предоставить значения, которые вы выбрали. Это объясняет, как

Если вы хотите предоставить ответ на вопрос о конфигурации, но не хотите, чтобы его запрашивали, это можно сделать, предварительно введя в базу данных DebConf необходимую информацию. Вам нужно будет знать:

  • название пакета, отвечающего за вопрос (который может не совпадать с тем, который вы просили установить при наличии зависимостей),
  • ключ базы данных конфигурации, на который записан ответ, и
  • тип ответа (строка, логическое значение, выбор, множественный выбор или пароль).

Параметры конфигурации также могут быть предоставлены, в python-apt с apt_pkg.Configuration учебный класс. Примером

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

Затем вы должны найти имя опций, запрашиваемых скриптом конфигурации, и установить его через скрипт python.

Другие вопросы по тегам