如何使python apt库中的提交函数静音?

时间:2012-11-24 15:38:39

标签: python apt

我使用python apt库,我希望commit()函数不会产生任何输出。

我在网上搜索过,看到fork函数可以解决这个问题,但我不知道如何做到这一点,或者是否存在其他方法。我没有使用任何GUI,我通过终端工作。

2 个答案:

答案 0 :(得分:1)

最简单的解决方案可能是使用类似的东西:

class LogInstallProgress(apt.progress.base.InstallProgress):
    def fork(self):
        pid = os.fork()
        if pid == 0:
            logfd = os.open("dpkg.log", os.O_RDWR | os.O_APPEND | os.O_CREAT, 0o644)
            os.dup2(logfd, 1)
            os.dup2(logfd, 2)
        return pid

然后在commit()中:

 cache.commit(install_progress=LogInstallProgress())

但要小心,请注意deb包可能会提示conffile提示和类似的东西,所以你会想要覆盖conffile()(以及错误)。

答案 1 :(得分:0)

我认为使用fork是一种可能性。我已经尝试重定向sys.stdout甚至是sys.stderr:No Joy,它不会工作。